OVH Cloud OVH Cloud

Ouverture de fichiers Excel en VBA

3 réponses
Avatar
andre.l'hoir
Bonjour,

J'essaie d'ouvrir tous les fichiers Excels contenu dans un répertoire. Le
problème est que la sécurité Excel sur les macros sont bloqués sur Médium. Si je
le change en 'low', il revient tout seul en 'Medium'.

Du fait que chaque fichier à ouvrir contient des macros, le système s'arrête sur
la ligne "Workbooks.Open". Comment éviter que le système s'arrête?
Pour info, j'ai déjà employé les fonctions suivantes:

- Application.AutomationSecurity = msoAutomationSecurityForceDisable
- Application.EnableEvents = False
- Application.ScreenUpdating = False

Rien à faire. Le pire est, si j'exécute en break mode; ligne par ligne, cela
fonctionne correctement.

Voici une copie du code

Dim user As Object
chemin="C:\fichier\Excel\"

ChDir chemin
fichier = Dir(chemin)
While fichier <> ""
Workbooks.Open Filename:=chemin & fichier, ReadOnly:=True
Set user = ActiveWorkbook
...
... ' Traitement
...
ActiveWorkbook.Close SaveChanges:=False
fichier = Dir
Wend

Si quelqu'un aurais une idée?
C'est gentil de votre part.
André

3 réponses

Avatar
michdenis
Bonjour André,

Sous excel 2003, avec la sécurité au niveau médium,
je peux sans aucun message particulier exécuter cette
macro :
'-------------------------
Sub OUvrir()
Workbooks.Open "c:classeur1.xls"
End Sub
'-------------------------

Tu es sur quelle version d'excel ?

Il n'y a aucune raison que ta macro bloque sur cette ligne de code
As-tu dans ton code "insérer des points d'arrêt" ?
"Workbooks.Open".
Attention : il n'y a pas de "point" après "Open".

Quel est ton message d'erreur ?


Salutations!




<andre.l' a écrit dans le message de news:
Bonjour,

J'essaie d'ouvrir tous les fichiers Excels contenu dans un répertoire. Le
problème est que la sécurité Excel sur les macros sont bloqués sur Médium. Si je
le change en 'low', il revient tout seul en 'Medium'.

Du fait que chaque fichier à ouvrir contient des macros, le système s'arrête sur
la ligne "Workbooks.Open". Comment éviter que le système s'arrête?
Pour info, j'ai déjà employé les fonctions suivantes:

- Application.AutomationSecurity = msoAutomationSecurityForceDisable
- Application.EnableEvents = False
- Application.ScreenUpdating = False

Rien à faire. Le pire est, si j'exécute en break mode; ligne par ligne, cela
fonctionne correctement.

Voici une copie du code

Dim user As Object
chemin="C:fichierExcel"

ChDir chemin
fichier = Dir(chemin)
While fichier <> ""
Workbooks.Open Filename:=chemin & fichier, ReadOnly:=True
Set user = ActiveWorkbook
...
... ' Traitement
...
ActiveWorkbook.Close SaveChanges:úlse
fichier = Dir
Wend

Si quelqu'un aurais une idée?
C'est gentil de votre part.
André
Avatar
andre.l'hoir
Bonjour,

Merci pour votre support.
La version d'Excel est Excel 2002 SP3.
Le message d'erreur: "Le programme a généré une interruption"

Mais, a force de chercher sur Internet, je suis parvenu à trouver une solution.
Je dois 'disable' les touches 'CTRL - BREAK' pendant l'exécution du programme
avec l'instruction : Application.EnableCancelKey = xlDisabled

et remettre la bonne instruction : Application.EnableCancelKey = xlInterrupt
en fin de programme.

merci quand meme.
Andre


In article <u#, michdenis says...

Bonjour André,

Sous excel 2003, avec la sécurité au niveau médium,
je peux sans aucun message particulier exécuter cette
macro :
'-------------------------
Sub OUvrir()
Workbooks.Open "c:classeur1.xls"
End Sub
'-------------------------

Tu es sur quelle version d'excel ?

Il n'y a aucune raison que ta macro bloque sur cette ligne de code
As-tu dans ton code "insérer des points d'arrêt" ?
"Workbooks.Open".
Attention : il n'y a pas de "point" après "Open".

Quel est ton message d'erreur ?


Salutations!




<andre.l' a écrit dans le message de news:

Bonjour,

J'essaie d'ouvrir tous les fichiers Excels contenu dans un répertoire. Le
problème est que la sécurité Excel sur les macros sont bloqués sur Médium. Si je
le change en 'low', il revient tout seul en 'Medium'.

Du fait que chaque fichier à ouvrir contient des macros, le système s'arrête sur
la ligne "Workbooks.Open". Comment éviter que le système s'arrête?
Pour info, j'ai déjà employé les fonctions suivantes:

- Application.AutomationSecurity = msoAutomationSecurityForceDisable
- Application.EnableEvents = False
- Application.ScreenUpdating = False

Rien à faire. Le pire est, si j'exécute en break mode; ligne par ligne, cela
fonctionne correctement.

Voici une copie du code

Dim user As Object
chemin="C:fichierExcel"

ChDir chemin
fichier = Dir(chemin)
While fichier <> ""
Workbooks.Open Filename:=chemin & fichier, ReadOnly:=True
Set user = ActiveWorkbook
...
... ' Traitement
...
ActiveWorkbook.Close SaveChanges:úlse
fichier = Dir
Wend

Si quelqu'un aurais une idée?
C'est gentil de votre part.
André




Avatar
michdenis
Bonjour André,

Pour exécuter un bout de code comme celui proposé ici,
c'est la première fois que je lis qu'on doive faire intervenir
ce que tu proposes comme solution. Je suppose que tu
dois être dans un environnement particulier! Tant mieux si
tu as trouvé une solution...mais vue de l'extérieur, c'est pour
le moins singulier.

-------------------------
Sub OUvrir()
Workbooks.Open "c:classeur1.xls"
End Sub
-------------------------


Salutations!


<andre.l' a écrit dans le message de news:
Bonjour,

Merci pour votre support.
La version d'Excel est Excel 2002 SP3.
Le message d'erreur: "Le programme a généré une interruption"

Mais, a force de chercher sur Internet, je suis parvenu à trouver une solution.
Je dois 'disable' les touches 'CTRL - BREAK' pendant l'exécution du programme
avec l'instruction : Application.EnableCancelKey = xlDisabled

et remettre la bonne instruction : Application.EnableCancelKey = xlInterrupt
en fin de programme.

merci quand meme.
Andre


In article <u#, michdenis says...

Bonjour André,

Sous excel 2003, avec la sécurité au niveau médium,
je peux sans aucun message particulier exécuter cette
macro :
'-------------------------
Sub OUvrir()
Workbooks.Open "c:classeur1.xls"
End Sub
'-------------------------

Tu es sur quelle version d'excel ?

Il n'y a aucune raison que ta macro bloque sur cette ligne de code
As-tu dans ton code "insérer des points d'arrêt" ?
"Workbooks.Open".
Attention : il n'y a pas de "point" après "Open".

Quel est ton message d'erreur ?


Salutations!




<andre.l' a écrit dans le message de news:

Bonjour,

J'essaie d'ouvrir tous les fichiers Excels contenu dans un répertoire. Le
problème est que la sécurité Excel sur les macros sont bloqués sur Médium. Si je
le change en 'low', il revient tout seul en 'Medium'.

Du fait que chaque fichier à ouvrir contient des macros, le système s'arrête sur
la ligne "Workbooks.Open". Comment éviter que le système s'arrête?
Pour info, j'ai déjà employé les fonctions suivantes:

- Application.AutomationSecurity = msoAutomationSecurityForceDisable
- Application.EnableEvents = False
- Application.ScreenUpdating = False

Rien à faire. Le pire est, si j'exécute en break mode; ligne par ligne, cela
fonctionne correctement.

Voici une copie du code

Dim user As Object
chemin="C:fichierExcel"

ChDir chemin
fichier = Dir(chemin)
While fichier <> ""
Workbooks.Open Filename:=chemin & fichier, ReadOnly:=True
Set user = ActiveWorkbook
...
... ' Traitement
...
ActiveWorkbook.Close SaveChanges:úlse
fichier = Dir
Wend

Si quelqu'un aurais une idée?
C'est gentil de votre part.
André