Ouvrir fichier a partir d'une liste
Résolu/Fermé
guillaume660
-
14 mars 2011 à 18:38
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 15 mars 2011 à 21:42
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 15 mars 2011 à 21:42
A voir également:
- Ouvrir fichier a partir d'une liste
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Liste déroulante excel - Guide
- Comment ouvrir un fichier docx ? - Guide
- Fichier rar - Guide
13 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 mars 2011 à 18:44
14 mars 2011 à 18:44
Il faut l'adresse complète du fichier à ouvrir (disque:\ répertoire\...\nom.xlsx
Bonjour Patrice33740,
En fait j'ai en colonne B l'adresse du répertoire et en colonne C le nom du fichier.
Je suis donc obligé de mettre l'adresse complète en colonne B et entre parenthèse ?
Puis-je choisir l'onglet qui m'intéresse également ?
Merci
En fait j'ai en colonne B l'adresse du répertoire et en colonne C le nom du fichier.
Je suis donc obligé de mettre l'adresse complète en colonne B et entre parenthèse ?
Puis-je choisir l'onglet qui m'intéresse également ?
Merci
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
14 mars 2011 à 23:36
14 mars 2011 à 23:36
Re,
Non, le chemin (répertoire) en B et le nom du fichier en C conviennent, il semblerait que le chemin soit vide lors de l'erreur.
Essaie :
Avec le débogueur, la variable locale strFichier permet de vérifier que le nom complet du fichier correspond à un fichier existant.
Non, le chemin (répertoire) en B et le nom du fichier en C conviennent, il semblerait que le chemin soit vide lors de l'erreur.
Essaie :
Sub TEST() Dim strFichier As String For I = 5 To 500 strFichier = Range("B" & I).Value & "\" & Range("C" & I).Value Workbooks.Open strFichier Next I End Sub
Avec le débogueur, la variable locale strFichier permet de vérifier que le nom complet du fichier correspond à un fichier existant.
Merci pour ton aide en tout cas !
Avec ce code le fichier s'ouvre bien mais le même message d'erreur apparaît !
Le fichier que j'ouvre est un .xlsm, le problème peut-il venir de là ? Sachant que l'extension xlsm est bien précisée dans la colonne C.
Avec ce code le fichier s'ouvre bien mais le même message d'erreur apparaît !
Le fichier que j'ouvre est un .xlsm, le problème peut-il venir de là ? Sachant que l'extension xlsm est bien précisée dans la colonne C.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 08:25
15 mars 2011 à 08:25
Tu dis le fichier s'ouvre, mais avec ce code tu est sensé ouvrir non pas un mais 495 fichiers, il n'y a aucune sécurité en cas d'absence de fichier sur une des 495 lignes explorées.
En fait pour ne pas que la macro dure trop longtemps pendant l'essai, je transforme le i = 5 to 500 en I = 5 to 7, mais quoiqu'il arrive, le message arrive après l'ouverture du premier fichier
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 08:42
15 mars 2011 à 08:42
Vérifie que l'exécution des macro est autorisée, vérifie le niveau de sécurité.
Les macros sont-elles signées numériquement ?
Les macros sont-elles signées numériquement ?
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 09:09
15 mars 2011 à 09:09
Quel est exactement le message d'erreur ? Sur quelle ligne s'arrête l'exécution ?
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 09:19
15 mars 2011 à 09:19
N'y aurait-il pas des cellules fusionnées dans les colonnes B ou C ?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
15 mars 2011 à 09:23
15 mars 2011 à 09:23
Bonjour, Bonjour Patrice,
Excusez l'incruste...
Si les classeurs viennent "d'ailleurs", voir le niveau de sécurité ?
A+
Excusez l'incruste...
Si les classeurs viennent "d'ailleurs", voir le niveau de sécurité ?
A+
Messieurs,
le message d'erreur est le suivant :
Erreur d'execution 1004
'\code.xlsx' introuvable. Vérifiez l'orthographe du nom du classeur et la validité de l'emplacement.
Quand je clique sur débogage la ligne " Workbooks.Open strFichier " est surlignée en jaune.
Pour ce qui est du niveau de sécurité, c'est la case "activer toutes les macros" qui est cochée (je suis sur excel 2007).
Dois-je modifier quelque chose ?
le message d'erreur est le suivant :
Erreur d'execution 1004
'\code.xlsx' introuvable. Vérifiez l'orthographe du nom du classeur et la validité de l'emplacement.
Quand je clique sur débogage la ligne " Workbooks.Open strFichier " est surlignée en jaune.
Pour ce qui est du niveau de sécurité, c'est la case "activer toutes les macros" qui est cochée (je suis sur excel 2007).
Dois-je modifier quelque chose ?
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 14:25
15 mars 2011 à 14:25
Re,
Dans le VBE, lors du débogage (ligne surlignée en jaune) affiche les variables locales (affichage / fenêtre variables locales), vérifier la valeur de strFichier.
Il est fort probable que le fichier n'existe pas.
Dans le VBE, lors du débogage (ligne surlignée en jaune) affiche les variables locales (affichage / fenêtre variables locales), vérifier la valeur de strFichier.
Il est fort probable que le fichier n'existe pas.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
15 mars 2011 à 16:54
15 mars 2011 à 16:54
Effectivement, "\code" n'est pas un nom de fichier valide
Essaie :
Essaie :
Sub TEST() Dim wsh As Worksheet Dim strFichier As String Set wsh = ActiveSheet For I = 5 To 7 strFichier = wsh.Range("B" & I).Value & "\" & wsh.Range("C" & I).Value Workbooks.Open strFichier Next I End Sub
Merci beaucoup Patrice,
ça fonctionne parfaitement !!!!!
afin que je me couche mons bete ce soir, peux tu m'expliquer ce qui n'allait pas ? (je sais que l'explication est dans le code ci-dessus mais c'est loin d'être clair pour moi...)
En tout cas merci encore...
ça fonctionne parfaitement !!!!!
afin que je me couche mons bete ce soir, peux tu m'expliquer ce qui n'allait pas ? (je sais que l'explication est dans le code ci-dessus mais c'est loin d'être clair pour moi...)
En tout cas merci encore...
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié par Patrice33740 le 15/03/2011 à 21:43
Modifié par Patrice33740 le 15/03/2011 à 21:43
Re,
En fait, quand le premier fichier s'ouvre, il devient le fichier actif et donc
Range("B" & I).Value et Range("C" & I).Value sont lus dans ce fichier au lieu du fichier initial.
En déclarant la feuille active initiale (wsh) et en y faisant référence lors de la lecture du répertoire (wsh.Range("B" & I).Value) et du nom (wsh.Range("C" & I).Value) on évite cette erreur de débutant à laquelle nous faisons tous piéger régulièrement.
Cordialement
Patrice
En fait, quand le premier fichier s'ouvre, il devient le fichier actif et donc
Range("B" & I).Value et Range("C" & I).Value sont lus dans ce fichier au lieu du fichier initial.
En déclarant la feuille active initiale (wsh) et en y faisant référence lors de la lecture du répertoire (wsh.Range("B" & I).Value) et du nom (wsh.Range("C" & I).Value) on évite cette erreur de débutant à laquelle nous faisons tous piéger régulièrement.
Cordialement
Patrice