Désinstaller complètement une macro complémentaire

Comment désinstaller une macrocomplémentaire en vba ? Je sais utiliser installed=false, puis fermer le fichier xla et le supprimer complètement du disque (kill), mais il en reste toujours quelques traces (ça fait sale !), notamment les cases (non cochées) dans la boite "outils/ macro complémentaires" Comment éliminer tous les résidus et ne plus laisser de traces ?

Ce n'est pas très "propre" mais c'est la seule solution que j'aie trouvée :

Private sub SupprimerMacroComplémentaire(Nom As String)
 
 Dim I As Integer
 
 With AddIns
  .Item(Nom).Installed = False
  Kill .Item(Nom).FullName
  SendKeys "{HOME}"
  For I = 1 To .Count
   If .Item(I).Name = Nom Then exit sub
   SendKeys "{DOWN}"
  Next I
 End With
 SendKeys "~{ESC}"
 Application.CommandBars.FindControl(ID:\=943).Execute
 DoEvents
 
 end sub
sub Test()
 
 SupprimerMacroComplémentaire "Macro de test"
 
 end sub

Sinon, à l'extérieur d'Excel tu peux aussi détruire l'entrée "OPEN" correspondant à ta macro dans la base de registres. Le problème c'est que ça ne marche que si Excel est fermé (il ne tient pas compte des modifs faites manuellement dans la BDR au moment de sa fermeture).

Auteur :

Mots clefs associés à cette page : , , ,