Ouverture d'un document word VBA

Résolu
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005 - 31 janv. 2005 à 17:28
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 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.

Avez-vous une solution? Merci car là, je nage !

Fab

13 réponses

Kiddy75 Messages postés 3 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 30 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



nomfic = URL1 + NOM
Set session = CreateObject("Excel.Application")
session.Visible = True
session.DisplayAlerts = True
session.UserControl = True
session.AutomationSecurity = msoAutomationSecurityForceDisable


ChDir rec_fic(URL1)
session.Workbooks.Open Filename:=nomfic

et ça marche, je sais pas si ça peut toujours t'aider?
3
cs_Benouille Messages postés 215 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 7 septembre 2007
31 janv. 2005 à 18:52
je pense que tu dois le faire dans une option générale de word


(dsl de la pauvreté de ma réponse)

Benouille la grenouille
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 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
0
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005
1 févr. 2005 à 17:37
Ok, je cherchais peut-être une solution compliquée alors que la désactivation des macros est toute simple.


Merci pour vos réponses rapides.


Salut !


Fab
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005
1 févr. 2005 à 17:57
AIE AIE AIE !

Ca ne marche évidemment pas les gars.....

En désactivant les macros dans Word, mon code VBA ne s'exécute pas non plus.....

Il faut que je garde "activées" ces macros et je désactive l'exécution d'une macro à l'ouverture de la lettre.

Donc pas encore de solution.....c'est la cata ?

Quelle nuit pffffffffff
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 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.


madbob
0
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 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 ?

Merci d'avance pour vos lumières....
Fab
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 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
0
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 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.

Application.Documents.Application.AutomationSecurity = msoAutomationSecurityForceDisable
Application.Documents.Open (f1)
Application.Documents.Application.AutomationSecurity = msoAutomationSecurityLow

Je dois donc trouver autre chose.
Fab
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 mars 2012
4 févr. 2005 à 08:33
Quel version d'office (word) ?


madbob
0
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005
4 févr. 2005 à 16:32
Word 2002 SP3
0
madbob Messages postés 285 Date d'inscription dimanche 14 décembre 2003 Statut Membre Dernière intervention 13 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....



Bon courage.
madbob
0
develop73 Messages postés 9 Date d'inscription lundi 31 janvier 2005 Statut Membre Dernière intervention 23 février 2005
26 juil. 2005 à 17:29
Hello !

Merci pour ta contribution.
J'avais également trouvé cette solution après quelques recherches supplémentaires. Mais c'était pas évident....

Bonne continuation
Dev
0
Rejoignez-nous