OVH Cloud OVH Cloud

Interdire execution macro avant ...

2 réponses
Avatar
JacquesH
Bonjour à toutes et tous,

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.

Merci de vos réponses.

Jacques

2 réponses

Avatar
anonymousA
Bonjour,

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+
Avatar
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