Bonjour Jean-Michel, Pat5, Dan, G'Claire, Re Sylvie, Le Forum
Oui on peut employer parfois les Labels (étiquettes) pour se déplacer dans les instructions d'une macro, quoique certains puristes diront que ces labels ne doivent être utilisées que pour la gestion d'erreurs... Mais on va faire comme si ils ne liront pas ce fil !!! lol
Donc voici, en partant de ton exemple, une méthode basée sur un Select Case qui me semble bien plus approprié dans ce cas de figure :
Option Explicit
Sub JeanMi()
Dim Reponse As Byte
Start:
Select Case Range("A1").Value
Case 0
Reponse = MsgBox("ATTENTION VOUS ALLEZ FACTURER", vbYesNo)
If Reponse = vbYes Then
MsgBox "Maintenant s'éxécuterait la Macro pour faire la facture"
Range("A1") = 1: GoTo Start
End If
Case 1
Reponse = MsgBox("ATTENTION VOUS ALLEZ ENREGISTRER LA FACTURE", vbYesNo)
If Reponse = vbNo Then
Exit Sub
Else
MsgBox "Maintenant s'éxécuterait la Macro pour enregistrer la facture"
End If
Case Else
Reponse = MsgBox("ATTENTION VALEUR DIFFERENTE EN A1" & vbCrLf & _
"Voulez-Vous Faire une Facture répondre OUI" & vbCrLf & _
"Simplement Enregistrer la Facture répondre NON" & vbCrLf & _
"Vous ne voulez rien faire c'est le Week-End, répondre ANNULER", vbYesNoCancel)
If Reponse = vbYes Then Range("A1") = 0: GoTo Start
If Reponse = vbNo Then Range("A1") = 1: GoTo Start
End Select
End Sub
C'est une autre approche, mais le fonctionnement reste identique à ce ton idée Jean-Mi.
Et tant que j'y suis : Range("A1").Select ActiveCell.FormulaR1C1 = 1
Peut être écrit : "Range("A1") = 1" sans aucune sélection et "flashing" à l'écran.
Bon Samedi à tous et toutes
@+Thierry