Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Efface tout le code VBA

chop85

XLDnaute Nouveau
Bonjour à tous,

Je souhaiterai pouvoir effacer tout le code VBA (module, userform, ThisWorkbook ..) enregistré dans un classeur Excel.

Pour cela, j'ai essayé avec le code suivant :
Code:
Sub efface_vba()

Dim VBC As Object

Path = "C:\Users\456910\Desktop"
ActiveWorkbook().SaveAs Filename:=Path & "\Test1.xlsm"

     With ActiveWorkbook.VBProject
         For Each VBC In .VBComponents
             If VBC.Type = 100 Then
                 With VBC.CodeModule
                     .DeleteLines 1, .CountOfLines
                     .CodePane.Window.Close
                 End With
             Else: .VBComponents.Remove VBC
             End If
         Next VBC
     End With
     'MsgBox "Modules et macros du classeur actif supprimés.", _
             'vbInformation

ActiveWorkbook.Close SaveChanges:=True

End Sub

Ce code efface bien toutes les macros enregsitrés, mais l'effacement n'est pas enregistré dans le classeur Test1.xlsm. Je retrouve dans ce classeur le code VBA que j'avais inscrit.

Une idée afin d'y parvenir ?

Merci
 

Pièces jointes

  • Test.xlsm
    13 KB · Affichages: 34
  • Test.xlsm
    13 KB · Affichages: 31
  • Test.xlsm
    13 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Re : Efface tout le code VBA

Bonjour à tous


Enregistres ton classeur en *.xlsx et tu n'auras plus trace de code VBA.
(Évidemment l'enregistreur de macros te fournira le code idoine pour cet enregistrement en *.xlsx)
 

chop85

XLDnaute Nouveau
Re : Efface tout le code VBA

Bonjour,

Il suffisait d'y penser
Cela marche impec avec ce code :
Code:
Sub efface_vba()
 
Application.DisplayAlerts = False
Path = "C:\Users\456910\Desktop"
ActiveWorkbook().SaveAs Filename:=Path & "\Test1.xlsx", FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True

ActiveWorkbook.Close SaveChanges:=True

End Sub

Bien préciser le format du fichier à enregistrer et surtout désactiver les alertes avant la sauvegarde, sinon on se retrouve avec un message nous demandant de confirmer la sauvegarde sans les macros.

Merci à tous
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…