Arrêter le run d'une macro si un clic sur vbCancel

Bonjour à tous,

Je rencontre une difficulté avec l’option cancel d’une message box.

La situation dans laquelle je suis est la suivante :

1/ J’ai un bouton de formulaire placer sur une feuille excel.

2/ J’ai lié ce bouton à une macro qui fait deux call de macros : Macro_save & Macro_sent

La macro Macro_save se termine par une message box avec pour option un vbYesNoCancel.

Je voudrais faire en sorte que si l’utilisateur clique sur cancel de la message box alors d’arrêter totalement la macro du bouton autrement dit de ne pas de run de la macro Macro_sent.

Pourriez-vous m’aider sur cette problématique, s’il vous plaît ?

Merci par avance pour votre aide.

Bonne journée.

Bonjour,

A tester sur l'exemple

24black-hole.xlsm (18.75 Ko)

Ou par rapport à la macro de l'autre post

'Cancel: Fichier ni remplacé, ni renommé
     ElseIf MsgExist = vbCancel Then
        MsgBox "L'enregistrement n'a pas pu aboutir.", vbExclamation
        Exit Sub
     End If

Bonjour @M12,

Je vous remercie pour votre aide.

Alors je viens de tester en ajoutant la ligne "Exit Sub" mais malgré cela le call de Macro_sent est lancé.

Ci-dessous un schéma de la structure de la macro liée au bouton:

Sub bouton_formulaire()

Call Macro_save
Call Macro_sent
End sub

Ou par rapport à la macro de l'autre post

Effectivement, il s'agit de cette macro pour Macro_save. ^^

Pourriez-vous me dire à quel niveau je dois intervenir dans ma macro afin de ne pas pousuivre le call de Macro_sent si vbCancel= true ?

Merci par avance pour votre aide.

Re,

Teste

Sub bouton_formulaire()
Call Macro_save
  If MsgBox("Continuer", vbYesNoCancel, "Message") = vbCancel Then
    Exit Sub
  Else
    Call Macro_sent
  End If
End Sub

Sub Macro_save()
  Range("A1") = "Bonjour"
End Sub

Sub Macro_sent()
  Range("A2") = "Bonsoir"
End Sub

Re @M12,

J'ai testé et cela a fonctionné! Merci beaucoup.

Toutefois, ayant sur ma feuille deux boutons distincts qui utilise la même macro Macro_save mais pas la même Macro_sent (ex: Macro_sent_gmail pour le bouton1 et Macro_sent_outlook pour le bouton2) cela me pose un problème de faire un call directement de Macro_sent.

Du coup, si je dois affecté le Call Macro_sent dans la Macro_save il faut que dans la Macro_save j'ajoute comme condition:

Si bouton1 est cliqué alors call Macro_sent_gmail

Si bouton2 est cliqué alors call Macro_sent_outlook

Ayant utilisé des boutons de formulaire je ne vois comment faire pour formaliser l'idée précédente, i.e. de mettre

" If Button1_click = true then Call Macro_sent_gmail

End if "

Pourriez-vous me dire si cela est possible s'il vous plaît?

En espérant que ma description est claire.

Merci par avance pour votre aide.

Rechercher des sujets similaires à "arreter run macro clic vbcancel"