[vba] code pour ourir un fichier excel
Résolu
pierre
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
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 :
Le message d'erreur est que le fichier "tableau1.xls est introuvable.
Quelqu'un peut m'aider ?
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:
- [vba] code pour ourir un fichier excel
- Fichier bin - Guide
- Code ascii - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
2 réponses
Bonjour,
Essaie ce code :
Il vaut mieux ThisWorkbook plutôt que ActiveWorkbook et "\... plutôt que "/...
Patrice
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
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" ?
Je vais corriger le reste. En quoi "ThisWorkbook" est mieux que "ActiveWorkbook" ?
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
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