Macro à usage unique

Comment faire en sorte qu'une macro ne s'exécute qu'une seule fois puis se détruise ?

Une solution est de supprimer le code de la macro après son exécution. Ça peut se faire dans les instructions de la macro elle-même. Par exemple, pour exécuter une instruction à l'ouverture du classeur (écrire dans une cellule) puis supprimer la procédure Workbook_Open, recopie ce code dans le module ThisWorkbook :

Private sub Workbook_Open()
 Dim liDeb, NbLi
 
 'exécute une action à l'ouverture
 Msg = "La procédure Workbook_Open a été exécutée"
 ActiveSheet.Range("A1").Value = Msg
 
 'détruit la procédure
 '(l'action ne sera donc exécutée qu'une seule fois)
 With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
  liDeb = .ProcStartLine("Workbook_Open", 0)
  NbLi = .ProcCountLines("Workbook_Open", 0)
  .DeleteLines liDeb, NbLi
 End With
 
 end sub

Auteur :

Mots clefs associés à cette page : , ,

Aide

je n'arrive pas à mettre en place ce code dans mon xlt puis-je avoir de l'aide voici mon code

[code supprimé par webmaster]

forum

Bonjour
Comme indiqué à de multiples reprises sur excelabo, ce site n'est pas un forum de discussion où poser vos problèmes particuliers. Utilisez pour cela le forum microsoft answers excel. Merci

Misange