Bonjour,
je souhaiterai empêcher les utilisateurs de fermer par la croix Rouge, certains userform.
Est-ce possible ? comment et/ou par quel code ???
Version imprimable
Bonjour,
je souhaiterai empêcher les utilisateurs de fermer par la croix Rouge, certains userform.
Est-ce possible ? comment et/ou par quel code ???
oui c'est possible en passant à true le paramétre Cancel de l'action évenemetielle QueryClose ... par exemple:
le bouton CommandButton1 est la pour permettre la fermeture...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim bAutoriseFermeture As Boolean Private Sub UserForm_Activate() bAutoriseFermeture = False End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Cancel = Not bAutoriseFermeture End Sub Private Sub CommandButton1_Click() bAutoriseFermeture = True Unload Me End Sub
ok pour ton code mais moi cela ne marche pas chez moi.
J'ai mis ton code dans mon Userform !!!
Est ce la bonne place ???
MerciCode:
1
2
3
4
5
6
7 Private Sub Accueil_Activate() bAutoriseFermeture = False End Sub Private Sub Accueil_QueryClose(Cancel As Integer, CloseMode As Integer) Cancel = Not bAutoriseFermeture End Sub
il manque la ligne :
Code:
1
2 Dim bAutoriseFermeture As Boolean
à mettre tout en haut du code à ton userform ( variable globale.. )
non, en fait je l'ai mis aussi. Cela ne marche pas quand même. Je ne comprend pas pourquoi.
tu est sur de l'avoir bien mis..? ton userform s'appelle bien Acceuil..? place un point d'arrêt (F9) sur la ligne cancel=... histoire de voir si tu y passe bien lorsque tu clique sur la croix, et à ce moment la tu pourra vérifier la valeur de la variable bAutoriseFermetureCitation:
Envoyé par mulanzia2003
non cela ne marche pas quand je met un point d'arrêt.
J'ai essayer en mettant un msgbox.
Cela ne marche pas non plus.
Voilà le code que je test.
Dans la feuil1, un bouton avec :
Puis le code rattaché à ma UserForm1 :Code:
1
2
3
4 Private Sub CommandButton1_Click() UserForm1.Show End Sub
Merci de ton aide en tout casCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim bAutoriseFermeture As Boolean Private Sub UserForm1_Activate() bAutoriseFermeture = False End Sub Private Sub UserForm1_QueryClose(Cancel As Integer, CloseMode As Integer) Cancel = Not bAutoriseFermeture End Sub Private Sub CommandButton1_Click() bAutoriseFermeture = True Unload Me End Sub
je te joins mon fichier vous trouverez peut être une solution!!!
Bonjour,
J'ai regardé ton fichier et fais quelques test.
Mets UserForm_.... à la place de UserForm1_...
Chez moi en enlevant les "1", l'interdiction est active.
Bon courage.
Re,
J'ai fais un test sur une macro que je cré et le problème est le suivant :
Mettre :
etCode:
1
2 Private Sub UserForm_Activate()
au lieu deCode:
1
2 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
etCode:Private Sub Accueil_Activate()
En faisant ça devrait fonctionné.Code:Private Sub Accueil_QueryClose(Cancel As Integer, CloseMode As Integer)
Excellent, tout fonctionne.
En mettant simplement UserForm, cela s'applique à tous les UserForm.
Surprenant.
Encore merci de votre aide.:mrgreen: :P :oops:
D'où l'intérêt de ne jamais taper les procédures événementielles.
Il vaut bien mieux les générer en utilisants les listes déroulantes de l'éditeur en ayant sélectionné le form concerné.