nounours30
XLDnaute Nouveau
bonsoir
j'avais besoin de contrôler la fermeture d'un userform en obligeant l'utilisateur
à passer par un bouton "quitter"
après un peu de lecture, une petite compil commentée du résultat de mes recherches sur le forum
source collégiale notamment pour les sauts de lignes dans la msgbox d'avertissement
c'est simple mais ça marche et c'est du vba !!! exit les appels d'API
-------------------interdire fermeture par la croix ou raccourcis clavier------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'renvoie le mode de fermeture dans closemode
Select Case CloseMode 'test du mode de fermeture
Case 0 'Ou Constante vbFormControlMenu
MsgBox "Il est interdit de fermer par la croix" & Chr(10) & Chr(10) & "ou les raccourcis claviers" & Chr(10) & Chr(10) & "Utilisez le bouton quitter"
' & Chr(10) & Chr(10) & == sauts de lignes dans la MsgBox
'utiliser & Chr(13) & pour revenir a la ligne sans saut de ligne
Cancel = True 'on simule la fermeture
TextBox1.SetFocus ' on retourne dans l'userform
Case 1 'Ou Constante vbFormCode = fermeture par programmation
'MsgBox "Fermeture par programmation"
Cancel = False
Case Else
MsgBox "Fermeture non prévue"
End Select
End Sub
il faut bien sûr commencer par implanter un bouton quitter
dont le code contient au minimum
unload me
voilou a toutes fins utiles
bonne soirée à tous
j'avais besoin de contrôler la fermeture d'un userform en obligeant l'utilisateur
à passer par un bouton "quitter"
après un peu de lecture, une petite compil commentée du résultat de mes recherches sur le forum
source collégiale notamment pour les sauts de lignes dans la msgbox d'avertissement
c'est simple mais ça marche et c'est du vba !!! exit les appels d'API
-------------------interdire fermeture par la croix ou raccourcis clavier------------
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'renvoie le mode de fermeture dans closemode
Select Case CloseMode 'test du mode de fermeture
Case 0 'Ou Constante vbFormControlMenu
MsgBox "Il est interdit de fermer par la croix" & Chr(10) & Chr(10) & "ou les raccourcis claviers" & Chr(10) & Chr(10) & "Utilisez le bouton quitter"
' & Chr(10) & Chr(10) & == sauts de lignes dans la MsgBox
'utiliser & Chr(13) & pour revenir a la ligne sans saut de ligne
Cancel = True 'on simule la fermeture
TextBox1.SetFocus ' on retourne dans l'userform
Case 1 'Ou Constante vbFormCode = fermeture par programmation
'MsgBox "Fermeture par programmation"
Cancel = False
Case Else
MsgBox "Fermeture non prévue"
End Select
End Sub
il faut bien sûr commencer par implanter un bouton quitter
dont le code contient au minimum
unload me
voilou a toutes fins utiles
bonne soirée à tous