[vba] code pour ourir un fichier excel

Résolu/Fermé
pierre - 4 oct. 2010 à 17:40
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 7 oct. 2010 à 21:45
Bonjour,

J'ai construit une macro qui fait appel à 6 fichiers différents dans un même répertoire.
La macro est supportée par un septième fichier "macros.xls" dans le même répertoire.

Toutes les macros fonctionnent.

Mon seul soucis est le suivant :
Mes 6 fichiers sont évolutifs et je les récupère périodiquement.
Je les dépose dans un nouveau répertoire et y colle également le fichier macros.xls

Lorsque je joue la macro, impossible d'ouvrir les fichiers (qui sont évidemment nommés correctement..)

Voilà mon code pour l'ouverture des fichiers :

chemin = ActiveWorkbook.Path
nom_fichier = chemin & "/tableau1.xls"
Workbooks.Open Filename:=nom_fichier


Le message d'erreur est que le fichier "tableau1.xls est introuvable.

Quelqu'un peut m'aider ?







A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
4 oct. 2010 à 18:29
Bonjour,

Essaie ce code :

chemin = ThisWorkbook.Path
nom_fichier = chemin & "\tableau1.xls"
Workbooks.Open Filename:=nom_fichier

Il vaut mieux ThisWorkbook plutôt que ActiveWorkbook et "\... plutôt que "/...

Patrice
1
Merci à toi. J'avais repéré le "\... à la place du "/... (quel truc stupide...) et ça marche ainsi.

Je vais corriger le reste. En quoi "ThisWorkbook" est mieux que "ActiveWorkbook" ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
7 oct. 2010 à 21:45
Pour répondre à ta dernière question :

ThisWorbook représente toujours le classeur contenant la macro en train de s'exécuter, qu'il soit actif ou non, donc le répertoire sera toujours le même.

ActiveWorkbook représente le classeur actif, il ne s"agit pas forcement du classeur qui contient la macro. Lorsque plusieurs fichiers situés dans des répertoire différents sont ouverts simultanément on pourrait, par erreur, se référer au mauvais fichier. Par exemple, pendant la phase de débogage, lors d'un arrêt (Stop, Esc. ou Point arrêt), on pourrait activer un autre des fichiers par inadvertance, le répertoire ne serait plus le bon.

.L'utilisation de ThisWorbook évite toute ambiguïté.

Au plaisir de te retrouver sur le Forum
Patrice
0