Ouverture d'un document word VBA [Résolu]

develop73 9 Messages postés lundi 31 janvier 2005Date d'inscription 23 février 2005 Dernière intervention - 31 janv. 2005 à 17:28 - Dernière réponse : develop73 9 Messages postés lundi 31 janvier 2005Date d'inscription 23 février 2005 Dernière intervention
- 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
Afficher la suite 

13 réponses

Kiddy75 3 Messages postés mercredi 22 novembre 2000Date d'inscription 30 août 2005 Dernière intervention - 22 juil. 2005 à 11:37
+3
Utile
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?
Cette réponse vous a-t-elle aidé ?  
cs_Benouille 216 Messages postés jeudi 24 octobre 2002Date d'inscription 7 septembre 2007 Dernière intervention - 31 janv. 2005 à 18:52
0
Utile
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 31 janv. 2005 à 20:50
0
Utile
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
develop73 9 Messages postés lundi 31 janvier 2005Date d'inscription 23 février 2005 Dernière intervention - 1 févr. 2005 à 17:37
0
Utile
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
develop73 9 Messages postés lundi 31 janvier 2005Date d'inscription 23 février 2005 Dernière intervention - 1 févr. 2005 à 17:57
0
Utile
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 1 févr. 2005 à 21:29
0
Utile
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
develop73 9 Messages postés lundi 31 janvier 2005Date d'inscription 23 février 2005 Dernière intervention - 3 févr. 2005 à 17:53
0
Utile
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 3 févr. 2005 à 19:54
0
Utile
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 9 Messages postés lundi 31 janvier 2005Date d'inscription 23 février 2005 Dernière intervention - 4 févr. 2005 à 08:22
0
Utile
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
madbob 285 Messages postés dimanche 14 décembre 2003Date d'inscription 13 mars 2012 Dernière intervention - 4 févr. 2005 à 08:33
0
Utile
Quel version d'office (word) ?


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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.