Fichier .xlsm transformé en .xlsx / Neutraliser les macros

Bonjour,

J’ai un fichier .xlsm que je dois transformer tout à la fin en un fichier .xlsx afin qu’il ne crée pas de problème lors de sa distribution à plusieurs utilisateurs sur toutes sortes de machines.

J’utilise pour cela l’instruction

ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & Nouveau_nom, FileFormat:=xlOpenXMLWorkbook

Mais tant que le fichier reste ouvert, les macros continuent à fonctionner sur ce fichier.

J’ai donc eu l’idée de forcer la fermeture de cette nouvelle copie et à la réouverture, c’est bon, il n’y a vraiment plus de macros.

Cependant, ceci est assez génant car l’utilisateur ne peut pas continuer à traiter, par exemple afin de pouvoir l’envoyer par courriel.

Avez-vous alors une idée de la manière dont je pourrais réellement neutraliser les macros sans devoir fermer mon fichier ?

Bonnes salutations.

Bonjour,

Ça semble bien fonctionner ici (Excel 2016) :

Sub Supprimer_toutes_macros()
Dim VBC As Object

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
 End Sub

ric

Salut Ric,

Merci beaucoup pour ta solution qui fonctionne parfaitement

Très bonnes salutations.

Rechercher des sujets similaires à "fichier xlsm transforme xlsx neutraliser macros"