Stili delle Userform

Storico discussioni

INFORMAZIONI di ENZO
CIAO A TUTTI, AVREI UN PROBLEMA DI QUESTO TIPO
RICHIAMANDO UNA QUALSIASI USERFORM APPARE IN ALTO A DESTRA UNA X ATTTRAVERSO LA QUALE SI PUO' CHIUDERE LA STESSA USERFORM.
QUALCUNO SA DIRMI COME FARE PER NON POTERLA AVERE O VEDERE?
P.S. IL COMANDO ATTRAVERSO IL QUALE SI PUO' FAR SI CHE CLICCANDOCI SOPRA NON SI CHIUDA, LO CONOSCO MA A ME SERVIVA NON POTERLA VEDERE
GRAZIE

di Apoben64
Ciao Enzo, diciamo che la risposta alla tua domanda non è facile, però ho trovato un post italiano che rimanda anche ad un sito in inglese dove puoi trovare almeno una soluzione , visto che l'istruzione indicata ancora non l'ho ben capita. Ma può essere un inizio . Questo è il link: Link
Comunque la ricerca avanza !!!! Un caro saluto

di Apoben64
Trovato!!!!! , sul sito :http://www.oaltd.co.uk/Excel/Default.htm
il file di esempio "FormFun.xls" simula varie opzioni per le userform, tra cui non visualizzare la X e addirittura eleminare " caption" o il titolo. Il difficile è estrapolare dall'esempio l'istruzione specifica . Mauro ci puoi dare una mano ? . Se volete vi allungo il file per email .
Ciao , spero di sentirvi presto.
Questa soluzione può rendere ancora più interessanti i nostri lavori !!!!!

di Apoben64
La soluzione del quesito:
Eliminare "fisicamente" nel form la X di destra.
è questa
****************************************************
Da mettere delle dichiarazioni generali del modulo
che ha nome " modNoClose"
****************************************************
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

'Get the current window style
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

'Set the new window style
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Const WS_SYSMENU = &H80000
Const GWL_STYLE = (-16)

'Routine to hide the close button on a userform

Sub HideCloseButton(oDialog As Object)

Dim hWnd As Long, lStyle As Long


Select Case Int(Val(Application.Version))
Case 8 'Excel 97
hWnd = FindWindow("ThunderXFrame", oDialog.Caption)
Case 9 'Excel 2000+
hWnd = FindWindow("ThunderDFrame", oDialog.Caption)
End Select


'Get the current window style
lStyle = GetWindowLong(hWnd, GWL_STYLE)

'Turn off the System Menu bit
SetWindowLong hWnd, GWL_STYLE, lStyle And Not WS_SYSMENU

End Sub
*********************************************
Da inserire nel modulo Userform
*********************************************
Private Sub UserForm_Initialize()
HideCloseButton Me
End Sub
**********************************************
Ciao !

di Apoben64
Sarebbe bello però sviluppare altre funzioni che agiscono sul form . Ci proviamo ?

di Mauro
Ciao a tutti, scusate il ritardo ma ho avuto da fare. Questa è veramente una discussione interessante. Dopo avere visto gli spunti di Luca, ho scritto di slancio il seguente Tutorial.
Stili delle Userform
Complimenti Luca, buon lavoro. Se hai altre idee o ti va approfondire qualche aspetto. Ti do lo spazio x pubblicare un tuo tutorial. Ciao

di enzo
GRAZIE APO SEI STATO BRAVISSIMO

Cognolato Studio © 2005