Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment empêcher "AutoOpen" dans un document ouvert par VBA depuis XL

2 réponses
Avatar
Emile63
Bonjour =E0 tous,

Dans un fil pr=E9c=E9dent (r=E9solu), je souhaitais ouvrir des fichiers
Excel + Word pour lister ceux qui ont du code VBA dans un onglet.
Jusque-l=E0 tout est OK.
Les fichier Excel qui ont du code sont ma=EEtris=E9s par :
Application.EnableEvents =3D False
Par-contre, les doc. Word, qui ont une proc. "Document_Open" la
d=E9clanchent quand ils sont ouverts par la proc=E9dure. Ce qui (pour
certaines d'entre-elles) plante le reste de la proc=E9dure.
Comment l'=E9viter?
Puis-je utiliser le commutateur "/m" a l'ouverture du fichier Word, ou
est-ce qu'il y a une autre commande VBA plus efficace pour l'occasion.
Merci pour votre aide,

Cordialement,
Emile

2 réponses

Avatar
michdenis
Bonjour,

Dans la procédure sur le traitement des fichiers Word, tu dois ajouter 2 lignes de code.

A ) Juste en dessous de la création de l'instance de l'application Word
Set Wd = CreateObject("Word.Application")
Ajoute cette ligne de code
Wd.WordBasic.DisableAutoMacros 1
Elle désactive les macros.

B ) Et pour réactiver les procédure événementielles, tu ajoutes cette ligne de code
Wd.WordBasic.DisableAutoMacros 0
Immédialement après la fin de la boucle "Do While.... Loop"
c'est a dire après la ligne Loop

--
MichD
--------------------------------------------


"Emile63" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Dans un fil précédent (résolu), je souhaitais ouvrir des fichiers
Excel + Word pour lister ceux qui ont du code VBA dans un onglet.
Jusque-là tout est OK.
Les fichier Excel qui ont du code sont maîtrisés par :
Application.EnableEvents = False
Par-contre, les doc. Word, qui ont une proc. "Document_Open" la
déclanchent quand ils sont ouverts par la procédure. Ce qui (pour
certaines d'entre-elles) plante le reste de la procédure.
Comment l'éviter?
Puis-je utiliser le commutateur "/m" a l'ouverture du fichier Word, ou
est-ce qu'il y a une autre commande VBA plus efficace pour l'occasion.
Merci pour votre aide,

Cordialement,
Emile
Avatar
Emile63
Bonjour MichDenis,

C'est parfait. ;-))

Merci beaucoup pour ton aide.
Cordialement,

Emile