un truc tres .... dur .... avec Workbooks.Open

3 réponses
Avatar
Alfred WALLACE
Gurus du soir ... bonsoir !

alors, voila, grace =E0 vous, j'ai p=FB parcourir
les dossiers et sous-dossiers =E0 la recherche
de fichiers EXCEL (2000) qui contiennent des macros... OK.

Ceci fonctionne.

Mon soucis, est que, pour tester si le fichier contiend des
macros, j'utilise "ActiveWorkbook.VBProject.VBComponents
(I).CodeModule.CountOfLines "
ceci, fonctionne (grace =E0 vous) tres bien.

Je suis donc oblig=E9 d'ouvrir le fichier xls via un "Workbooks.Open".
dans ce cas, si il y a des liens, j'ai une fenetre qui me demande de
les mettres =E0 jours, si j'ai
une macro en autoexec elle se lance ... etc etc etc ....

j'ai vu ici : http://tinyurl.com/c8nfh ou ici : http://tinyurl.com/ycpz87q
que "Workbooks.Open" avait des parametres (ou m=E9thodes ?) ...
mais je n'arrive pas =E0 les mettre en oeuvre. sauf peut etre pour le
premier parametre
qui est "UpdateLinks" ...
j'aimerai que mon "Workbooks.Open" ne lance pas la macro,
potentiellement
pr=E9sente dans le xls ouvert. et, =E0 minima, j'aimerai pouvoir d=E9tecter
un message d'erreur, lorsque, par exemple le fichier est prot=E9g=E9 en
lecture (=E0 l'ouverture)...

Merci encore pour votre aide.
Jos=E9

3 réponses

Avatar
Daniel.C
Bonsoir.
Jamais essayé, mais la propriété :
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Ne pas oublier de repositionner la valeur initiale.
Cordialemeent.
Daniel

Gurus du soir ... bonsoir !

alors, voila, grace à vous, j'ai pû parcourir
les dossiers et sous-dossiers à la recherche
de fichiers EXCEL (2000) qui contiennent des macros... OK.

Ceci fonctionne.

Mon soucis, est que, pour tester si le fichier contiend des
macros, j'utilise "ActiveWorkbook.VBProject.VBComponents
(I).CodeModule.CountOfLines "
ceci, fonctionne (grace à vous) tres bien.

Je suis donc obligé d'ouvrir le fichier xls via un "Workbooks.Open".
dans ce cas, si il y a des liens, j'ai une fenetre qui me demande de
les mettres à jours, si j'ai
une macro en autoexec elle se lance ... etc etc etc ....

j'ai vu ici : http://tinyurl.com/c8nfh ou ici : http://tinyurl.com/ycpz87q
que "Workbooks.Open" avait des parametres (ou méthodes ?) ...
mais je n'arrive pas à les mettre en oeuvre. sauf peut etre pour le
premier parametre
qui est "UpdateLinks" ...
j'aimerai que mon "Workbooks.Open" ne lance pas la macro,
potentiellement
présente dans le xls ouvert. et, à minima, j'aimerai pouvoir détecter
un message d'erreur, lorsque, par exemple le fichier est protégé en
lecture (à l'ouverture)...

Merci encore pour votre aide.
José


Avatar
FdeCourt
Salut,

Pour éviter que les macro WorkBook_Open ne se lance, utilise, dans ta
macro appelante, cette formule au tout début :
Application.EnableEvents = False
Que tu mets à True à la fin de ton code.

Pour tester si un fichier est déjà ouvert, essayes ce bout de code de
Frédéric Sigonneau :
http://www.excelabo.net/trucs/dejaouvert

Cordialement,

F.
Avatar
FS
Bonjour,

Je t'ai fait une suggestion de solution sans ouvrir les fichiers en
réponse à ta question du 21/1 8:12.
Peut-être à essayer ?

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Alfred WALLACE a écrit :
Gurus du soir ... bonsoir !

alors, voila, grace à vous, j'ai pû parcourir
les dossiers et sous-dossiers à la recherche
de fichiers EXCEL (2000) qui contiennent des macros... OK.

Ceci fonctionne.

Mon soucis, est que, pour tester si le fichier contiend des
macros, j'utilise "ActiveWorkbook.VBProject.VBComponents
(I).CodeModule.CountOfLines "
ceci, fonctionne (grace à vous) tres bien.

Je suis donc obligé d'ouvrir le fichier xls via un "Workbooks.Open".
dans ce cas, si il y a des liens, j'ai une fenetre qui me demande de
les mettres à jours, si j'ai
une macro en autoexec elle se lance ... etc etc etc ....

j'ai vu ici : http://tinyurl.com/c8nfh ou ici : http://tinyurl.com/ycpz87q
que "Workbooks.Open" avait des parametres (ou méthodes ?) ...
mais je n'arrive pas à les mettre en oeuvre. sauf peut etre pour le
premier parametre
qui est "UpdateLinks" ...
j'aimerai que mon "Workbooks.Open" ne lance pas la macro,
potentiellement
présente dans le xls ouvert. et, à minima, j'aimerai pouvoir détecter
un message d'erreur, lorsque, par exemple le fichier est protégé en
lecture (à l'ouverture)...

Merci encore pour votre aide.
José