develop73
Messages postés9Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention23 février 2005
-
31 janv. 2005 à 17:28
develop73
Messages postés9Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention23 février 2005
-
26 juil. 2005 à 17:29
Bonjour,
J'ai plusieurs documents que je dois ouvrir via du code VBA pour y faire une petite modif. (environ 4000 documents).
Mon problème :
Sur un de ces documents, il y a du code vba qui est exécuté à l'ouverture du document. Je veux empêcher le code de s'exécuter à l'ouverture de la lettre, mais je ne dois en aucun cas le désactiver définitivement. Je dois juste empêcher son exécution à cette ouverture-là
comment puis-je le faire en code vba ?
Pour l'instant, je ne fais qu'un "Application.Documents.Open (f1)" et n'ai pas trouvé d'option me permettant de désactiver la macro à l'ouverture.
Kiddy75
Messages postés3Date d'inscriptionmercredi 22 novembre 2000StatutMembreDernière intervention30 août 2005 22 juil. 2005 à 11:37
heu je sais pas si j'ai bien compri ton problème mais ya peut être un moyen de le contourner en n'ouvrant pas tes lettres dans la même session de word que celle dans laquelle tu execute ta macro principale.(je sais pas si je me suis bien fai comprendre).
j'avais le même genre de pb avec excel, dans un fichier excel, je lancais une macro qui elle même ouvrait un autre fichier excel contenant une macro au démarage(que je ne voulais pas executer).
donc ce que j'aifait c d'ouvrir une nouvelle session d'excel
Dim session As excel.application
Dim nomfic As String
Dim rec_fic As Recordset
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 31 janv. 2005 à 20:50
Effectivement automatiser un process parait judicieux...
Je dirais que ça dépend du type de modif à faire... Est-ce qu'il faut
agir à un endroit précis et pour tous les documents de la même façon...
Sinon faire le tri de ce que tu peux faire en Auto et voir si ce qui
reste à faire manuellement est supportable dans la mesure ou tu devrais
générer un code spécifique pour ceux là et donc passer encore du
temps...
Sinon tu peux désactiver les macros par les modes de sécurité de word si c'est vraiment ça que tu cherches!!!
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 1 févr. 2005 à 21:29
l'info ne fait pas tout
Dans la description de ta demande tu dis :
Mon problème :
Sur un de ces
documents, il y a du code vba qui est exécuté à l'ouverture du
document. Je veux empêcher le code de s'exécuter à l'ouverture de la
lettre, mais je ne dois en aucun cas le désactiver définitivement. Je
dois juste empêcher son exécution à cette ouverture-là
C'est que ça n'a peut -etre pas tant d'impact que ça...
Tu dois faire quoi comme modif
en ? l'exécution de la macro est elle génante
Quels sont les différents type de fichier à manipuler
Quel sont ceux qui contiennent des macros
Si la modif est liée au fichier qu'elle est la règle
Sont ils tous dans le même répertoire etc...
Voilà toutes les question que tu dois te poser après seulement tu
pourras dire c'est la cata. Pour le moment c'est encore un peu tôt.
develop73
Messages postés9Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention23 février 2005 3 févr. 2005 à 17:53
Salut
C'est vrai, dans mon problème, j'ai parlé d'un seul document. En fait, parmi mes 4000 lettres Word, il y en a environ 300 à 500 qui peuvent contenir du code vba.
Je ne peux pas savoir à l'avance si la lettre que je vais ouvrir contient du code vba.
Ce qui est sûr : mes documents sont tous dans un même dossier. Je suis capable de le parcourir, d'ouvrir chaque fichier, d'y apporter la modification souhaitée et de refermer ce fichier.
Le problème c'est que lorsque j'ouvre un fichier contenant lui-même du code vba, ce code s'exécute et bloque l'exécution de ma macro.
Pourquoi bloque-t-il ma macro ? Tout simple : les fichiers contenant du code vba permettent aux utilisateurs de saisir des données variables (interactivité). Ce code s'exécute chaque fois sur Document_Open ...
...et c'est exactement ce code-là que j'aimerai désactiver à l'ouverture de chaque fichier.
En fait, quand j'ouvre une lettre contenant une macro et que je ne veux pas que cette dernière s'exécute, j'appuye sur la touche "shift" de mon clavier et la macro ne s'exécute pas. Génial, mais en code vba, je n'arrive pas à le faire.
Est-ce que mon problème est moins "flou" ? plus compréhensible ?
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 3 févr. 2005 à 19:54
Salut,
On y voit plus clair mais c'est encore bien sombre.
La modification que tu dois faire, c'est peut-être important de détailler même si ça ne concerne que des documents word...
Peux tu déterminer si en fonction du nom du fichier il y macro ou pas
ça pourrait déjà t'aider à résoudre 90% des cas. J'ai du mal à croire
que cela soit si désorganisé.
Avec autant de fichiers, les macros ne seraient-elles pas dans un
module externalisé que tu pourrais inhiber...Ca serait cool ça non ?
Voilà encore quelques réponses qui m'aideraient peut-être à t'aider
madbob
develop73
Messages postés9Date d'inscriptionlundi 31 janvier 2005StatutMembreDernière intervention23 février 2005 4 févr. 2005 à 08:22
Hello !
Il est impossible de déterminer s'il y a une macro ou pas dans le fichier que je vais ouvrir. J'ai essayé le code ci-dessous, mais cela stoppe toute l'exécution de ma macro et pas seulement celle du fichier que je vais ouvrir.
madbob
Messages postés285Date d'inscriptiondimanche 14 décembre 2003StatutMembreDernière intervention13 mars 2012 4 févr. 2005 à 18:01
J'ai pas de solution magique et le moins tu donnes d'info, le plus c'est dur...
Si les macros sont centralisées alors tu dois pouvoir inhiber relativement simplement le traitement
Sinon je doute que ton problème puisse se résoudre simplement... A
moins de passer par une interface compilée en vb par exemple ou autre
pour faire ce que tu as à faire, en prenant le soint que les macros ne
se lancent pas....