Instruction pour exécution conditionnée d'une série de macro

Bonjour,

Je lance l'exécution de 3 macros appelées MAZ, MAJ et nommer (dans ce même ordre d'exécution) par un bouton auquel j'ai affecté la macro appelée Total.

Sub Total()

Call MAZ
Call MAJ
Call nommer

End Sub


L'instruction que je veux donner c'est que si la valeur de la cellule C6 n'a pas changé depuis la dernière exécution de la macro Total, la macro MAZ doit être ignorée, et seulement les macros MAJ et nommer doivent s'exécuter.

Quelle serait le bon code svp ?

Merci de votre aide

SCSK

Bonjour,

Pourquoi ne pas à la fin de votre Sub Total la valeur de C6 dans une autre de votre cellule par exemple AL1 puis comparer si C6 et AL1 sont différents afin d'executer ou non MAJ ? A voir si MaZ ou nommer modifient C6 ...

Par exemple :

Sub Total()
Call MAZ
If [C6] <> [AL1] Then
    Call MAJ
    [AL1] = [C6]
End If
Call nommer
End Sub

Je vous laisse adapter.

Il me semble qu'on peut garder la valeur d'une variable sous VBA, mais je ne sais pas si elle est conservée à la fermeture/réouverture du fichier. D'où l'intérêt de passer par une cellule.

Cdlt,

Très astucieux comme idée.
Cela fonctionne à merveille, et voici comment je l'ai adapté :

Sub Total()

If [C6] <> [C1] Then
Call MAZ
[C1] = [C6]
End If
Call MAJ
Call nommer

Range("C6").Select
Selection.Copy
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End Sub

Merci beaucoup Ergotamine.

Rechercher des sujets similaires à "instruction execution conditionnee serie macro"