TLDR :
Comment enregistrer un fichier Excel avec macros en tant que fichier Excel sans macros à l'aide de VBA ? suppression de l'invite indiquant que le format cible ne prend pas en charge les macros ?
J'ai un fichier xlsb (Excel 2007+ avec Macros), à l'intérieur se trouve le contenu et un bouton qui devrait enregistrer ce fichier en tant que xlsx (Excel 2007 SANS Macros). Jusqu'à présent, tout va bien. Je vais utiliser ActiveWorkbook.SaveAs FileName:=name, FileFormat=xlOpenXMLWorkbook, Password="xyz"
Mais cela génère toujours une invite qui indique à l'utilisateur que l'enregistrement des données dans le format cible entraîne la perte des données de la macro et que s'il veut continuer...
J'ai essayé Application.DisplayAlerts = False
y ThisWorkbook.CheckCompatibility = False
. J'ai également enregistré la même action avec le MacroRecorder qui semble également incapable d'ignorer l'invite à venir.
Mon dernier essai était une copie du contenu en utilisant ThisWorkbook.Sheets.Copy
et j'essaie de supprimer les données de VBProject. J'ai essayé plusieurs méthodes, mais il semble que les données de VB-Project ne puissent pas être réellement supprimées. Après avoir exécuté remove et des trucs comme ça, le débogueur montre toujours trois éléments de vb-project-data.
Je vérifierai ça demain, mais ça ressemble beaucoup au code que j'ai essayé... Macro pour sauvegarder la feuille active comme nouveau classeur, demander à l'utilisateur l'emplacement et supprimer les macros du nouveau classeur.