Changer extension fichier en désactivant les macros
pzyko
Messages postés
35
Statut
Membre
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un dossier contenant 5 fichiers ".xlsm" qui contiennent des macros. J'aimerais savoir comment modifier l'extension de ces fichiers pour les passer en ".xls" et qu'ils ne contiennent plus de macros.
Merci :)
J'ai un dossier contenant 5 fichiers ".xlsm" qui contiennent des macros. J'aimerais savoir comment modifier l'extension de ces fichiers pour les passer en ".xls" et qu'ils ne contiennent plus de macros.
Merci :)
4 réponses
-
Bonjour,
Ouvrir un nouveau classeur et mettre dans un module:
Option Explicit 'supprimer *tout* le code d'un classeur 'copier ce code dans un module standard d'un autre classeur que celui 'dont vous voulez supprimer toutes les macros et l'exécuter après avoir 'rendu actif le classeur dont les macros doivent être supprimées 'Bill Manville, mpep Sub RemoveMacros() Dim O As Object For Each O In ActiveWorkbook.Sheets If TypeName(O) = "Worksheet" Then Select Case O.Type Case xlExcel4MacroSheet, xlExcel4IntlMacroSheet Application.DisplayAlerts = False MsgBox "Macro sheet " & O.Name O.Delete Application.DisplayAlerts = True End Select ElseIf TypeName(O) = "Module" Then Application.DisplayAlerts = False MsgBox "Module " & O.Name O.Delete Application.DisplayAlerts = True End If Next If Val(Application.Version) >= 8 Then With ActiveWorkbook.VBProject For Each O In .VBComponents Select Case O.Type Case 1, 2 ' standard or class module MsgBox "Module " & O.Name .VBComponents.Remove O Case Else ' form or document With O.CodeModule If .CountOfLines > 0 Then MsgBox "Module behind " & O.Name .DeleteLines 1, .CountOfLines End If End With End Select Next End With End If For Each O In ActiveWorkbook.Names 'noms dans le classeur Select Case O.MacroType Case xlFunction, xlCommand MsgBox "Name " & O.Name O.Delete End Select Next End Sub
Ensuite mettre une UserForm avec un CommandButton et mettre ce code:
Option Explicit Dim chemin As String Private Sub CommandButton1_Click() chemin = "chemin classeur.xlsm" Workbooks.Open chemin RemoveMacros chemin = Replace(chemin, "xlsm", "xls") ActiveWorkbook.SaveAs Filename:= _ chemin, FileFormat:=xlExcel8, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False End Sub
Ensuite changer le chemin pour chaque classeur. L'ancien classeur n'est pas supprimé. -
Bonjour,
Heuuuu, j'ai plus simple :-)
'Enregistrer sous...' et choisir le type *.xls
eric
-
Bonjour eriiic,
Heuuuu, Je pense que tu as répondu sans essayer :-(
Les macros sont toujours là et fonctionnelles!
-
Bonjour,
Oui, mais j'ai oublié l'étape principale : d'abord enregistrer dans le type *.xlsx (qui enlève les macros), puis dans la foulée en xls.
sorry :-)
eric