Quel procédure faire pour détuire automatiquement une macro après son excécution

nicosne Messages postés 37 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 10 mai 2005 - 11 août 2004 à 15:16
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 - 11 août 2004 à 15:42
bonjour,

je voudrais savoir s il y a un moyen qu'une macro qui se lance automatiquement puisse etre détruite apres son utilisation ceci afin d éviter qu elle ne s éxcécute une 2 fois?

Merci,
Nico

1 réponse

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
11 août 2004 à 15:42
C'est un peu brutal comme utilisation ... m'enfin bon.

Blablabla....
' et la dernière instruction de ta macro
If Dir("Macro.bas")<>"" Then
Kill "Macro.bas"
End if

Mais bon, j'ai un doute parce que si elle est en cours d'exécution, çà risque de merder.

Solution propre (mais qui n'efface pas la macro) :

Au démarrage de ta macro, tu regardes dans le registre la valeur d'une clé (exemple : FirstExec ). Si elle n'existe pas, tu la crées et tu exécutes la suite de ta macro.
Si elle existe, tu n'exécutes pas le reste de ta macro.

Sub Macro1()
Dim valeur as String

valeur = GetSetting(App.Title,"ValeurDeSection","FirstExec")
If valeur = "" Then
SaveSetting App.Title,"ValeurDeSection","FirstExec","executed"
' Le reste de la macro ici

Else
' Rien à faire dans le Else puisque la macro a déjà été exécutée.
End If

End Sub

Manu
0