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