J'ai un fichier avec plusieurs macro que je lance "manuellement"
(par Macro - Exécuter) les unes après les autres (entre chacune,
j'effectue quelques saisies.
Mon problème est le suivant : je dois impérativement les lancer dans le
bon ordre. Or ce matin, j'ai cliqué sur la mauvaise.
J'aurais besoin de quelques idées pour écrire le code suivant :
Si Macro1 non exécutée, alors msgbox "Il faut lancer la Macro1 avant"
Sinon la macro en cours continue.
Tu pourrais avoir des variables publiques ce qui permettrait de leur donner une valeur une fois les macros exécutées.
Ex
'à déclarer dans la section de déclarations du module Dim FinMAcro1 as integer,FinMAcro2 as integer
Sub MAcro1 'ici du code
FinMAcro1 =1 end sub
Sub Macro 2 if FinMAcro1 <>1 then msgbox "Exécuter d'abord la macro1" exit sub end if 'ici du code de la macro 2
End sub
Si il y a plusieurs macros ca se complique un peu sur la combinatoire mais à peine. Le principe reste toujours le même.
A+
jb
Bonjour,
On peut également imaginer d'activer la macro suivante après la saisie d'une cellule particulière avec :
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = "$A$10" ' cellule à tester procsuivante Application.EnableEvents = True End Sub
JB
Bonjour,
On peut également imaginer d'activer la macro suivante après la
saisie d'une cellule particulière avec :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$10" ' cellule à tester
procsuivante
Application.EnableEvents = True
End Sub
On peut également imaginer d'activer la macro suivante après la saisie d'une cellule particulière avec :
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address = "$A$10" ' cellule à tester procsuivante Application.EnableEvents = True End Sub