Je travaille sur quelques macros VBA dans Excel pour un projet. Est-il possible de s'assurer que les macros VBA ne se lancent pas à partir d'autres classeurs Excel lorsque vous les ouvrez à l'aide d'une macro?Désactivation de macros à partir d'autres feuilles Excel
Par exemple, disons que j'ai une macro dans un classeur pour ouvrir un autre fichier Excel:
Sheets("Sheet1").Select
PathName = Range("D3").Value
Filename = Range("D4").Value
TabName = Range("D5").Value
ControlFile = ActiveWorkbook.Name
Workbooks.Open Filename:=PathName &; Filename
Ce que j'ai fait habituellement est inclure un Application.EnableEvents = False
au sous-programme pour faire en sorte que je ne suis pas code de déclenchement lors de l'ouverture des autres classeurs. C'est aussi la méthodologie suggérée par ce précédent SO post.
Mais deux questions viennent à l'esprit:
Est-ce "sûr"? Existe-t-il d'autres façons pour les utilisateurs d'écrire leurs propres macros qui s'exécutent sur mon application active même si je désactive les événements?
Existe-t-il d'autres solutions de contournement autres que la désactivation complète des événements? Cela semble quelque peu limitant et presque "jeter le bébé avec l'eau du bain".
utiliser SQL pour obtenir des données de la feuille de calcul – jsotola