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

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

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel