Bonjour,
Petit soucis sur une de mes macros.
J’ai un userform qui s’affiche et qui demande de faire une sélection de face ou d’arrête.
Le code macro main:
UserFormSelectFace.Show vbModeless
CoincidentsCtresWindows "SOLIDWORKS", UserFormSelectFace.Caption, True
Tant que la sélection n’est pas faite la macro continu. De ce côté là pas de soucis
Le problème vient du bouton cancel, car si on appuis dessus on sort du userform mais la macro continu et bug (car aucune sélection de réalisé)
J’ai bien essayé de mettre çà dans le userform:
Private Sub BoutonCancel_Click()
Msgbox "TEST"
End
End Sub
Mais lorsque l’on appui sur la croix cancel même résultat qu’avant (pas de msgbox « TEST » et la macro continu et bug.)
Une idée sur la raison de cet échec? Je ne comprends pas comment déclencher un évènement avec sce bouton cancel.
Bonjour,
Je suis surpris normalement s’il n’y a pas de fonction hide du userform l’appui sur le bouton cancel devrait passer par le msgbox et laisser le formulaire affiché.
Par contre quand tu dis que la macro continue, elle fait quoi exactement avec le formulaire affiché? Ca vient peut-être de là
@Cyril.f j’ai ausi un
Unload UserFormSelectFace
un peu en dessous dans mon code, une fois la sélection vérifiée. Je l’avais oublié celui là!
En revanche en ajoutant ça dans le userform, cela semble faire le job:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Macro interrompue"
End
End If
' If CloseMode = vbFormControlMenu Then Cancel = 1
End Sub
Le QueryClose c’est l’appui sur la croix (on peut même inhibée la fermeture pour obliger à passer par les boutons Ok et Cancel).
Oui c’est ce que j’ai vu avec le code que j’ai récupéré.
J’ai commenté la ligne :
If CloseMode = vbFormControlMenu Then Cancel = 1
Qui effectivement inhibait le bouton cancel.
Et ensuite je l’ai modifié pour mettre mon message d’avertissement et le end.
De ce que j’ai compris le BoutonCancel_Click() ne fonctionne pas sous excel (contrairement à Excel)
Ca doit être dans SW contrairement à Excel
Pour SW faut un bouton de formulaire qui fait le cancel et y ajouter un traitement.
Oui c’est ça, dans SW contrairement à Excel!
Le soucis c’est que certaine personnes appuyaient sur cette croix pour quitter la macro et que le code ne s’interrompait pas, et se mettait en mode débug suite à une ou plusieurs erreurs, donc il m’appelait au téléphone pour savoir pourquoi!
Maintenant cela devrait résoudre mon soucis!
1 « J'aime »