Effacer une macro par une macro

L1u_Kang

XLDnaute Nouveau
Hello,

J'ai un fichier qui contient certaine macro qui ne sont plus utiles lorsque le dossier ce clôture, vu que j'archive tout mes fichiers, j'aimerais savoir si il est possible de faire une macro qui efface toute les macros qui ne sont plus utilisées, ou carrement effacer un module ou des userforms.
Tout ceci pour optimiser la place des fichiers une fois archivé.

Merci d'avance
 

xavier44

XLDnaute Nouveau
Re : Effacer une macro par une macro

Bonsoir,
J'ai le même pb et grace à ce fils J'ai trouvé:

Sub supprimeToutVBA()
'copie le classeur en supprimant la totalité des procedures
Dim vbComp As VBComponent
ThisWorkbook.SaveAs "C:\test.xls"
For Each vbComp In ActiveWorkbook.VBProject.VBComponents
Select Case vbComp.Type
Case 1 To 3
ActiveWorkbook.VBProject.VBComponents.Remove vbComp
Case Else
With vbComp.codeModule
.deleteLines 1, .countOfLines
End With
End Select
Next vbComp
ActiveWorkbook.Save
End Sub

Le pb est que VBComponent n'est pas un type défini selon l'éditeur!
Ce code est qq peu opaque pour moi.
Ou placer cette routine ?
L1u_Kang comment as-tu solutionné le pb
Merci pour votre aide
 

MichelXld

XLDnaute Barbatruc
Re : Effacer une macro par une macro

bonjour L1u_Kang, Xavier et cher ami Michel


Le pb est que VBComponent n'est pas un type défini selon l'éditeur!

Tu dois activer la référence "Microsoft Visual Basic for Applications Extensibility 5.3 "
Dans L'éditeur de macros (Alt+F11 ):
Menu Outils
Références
Coche la ligne "Microsoft Visual Basic for Applications Extensibility 5.3"
Clique sur "OK" pour valider



Ou placer cette routine ?

Dans un module du classeur à sauvegarder:
Dans L'éditeur de macros / Insertion / Module
La macro va sauvegarder le classeur ("C:\test.xls") et supprimer toutes les procédures


Bonne journée
MichelXld
 

xavier44

XLDnaute Nouveau
Re : Effacer une macro par une macro

Bonsoir le forum et merci à Michel pour la réponse.

La référence indiquée activée ne donne pas de résultat.
en ligne 5 au debogage j'ai
Vbcomp =nothing
et la méthode VBProjet de l'objet workbook à échouée..

Une idée sur ce qu'il faut faire ?
Merci
 

MichelXld

XLDnaute Barbatruc
Re : Effacer une macro par une macro

bonsoir

Code:
La référence indiquée activée ne donne pas de résultat.
en ligne 5 au debogage j'ai
Vbcomp =nothing

Tu as testé quelle macro?
Il n'y a pas de Vbcomp =Nothing dans ton précédent message....

Lien supprimé


Tu as bien indiqué Set devant Vbcomp =Nothing?

Code:
set Vbcomp =Nothing



Bonne soirée
MichelXld
 

xavier44

XLDnaute Nouveau
Re : Effacer une macro par une macro

Je me suis mal exprimé.
La variable VBComp à la valeur "Nothing" dans le debogueur quand je passe la souris dessus!
Il me semble que cette var de type VBComponenta un pb. Ce qui fait q'en ligne 5 la boucle "For Each vbComp .." bloque. et moi aussi.
Encore merci de pour ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 381
Messages
2 087 831
Membres
103 667
dernier inscrit
datengo