Menu

Charger fichiers

-
Bonjour,

Je rencontre un problème que je ne parviens pas à résoudre.
Je veux charger plusieurs fichiers Excel dont les noms figurent dans la colonne A mais seul le premier est chargé ensuite erreur 1004 ! Nous ne trouvons pas "G:\" ... Voici la procédure :

Sub charger()
    Dim chemin, fichier As String
    chemin = "G:\"
    For i = 1 To 2
  fichier = chemin & Range("A" & i).Value
  Workbooks.Open (fichier)
   Next i
End Sub


Merci de votre aide

Alcap
Afficher la suite 

Votre réponse

3 réponses

Messages postés
4463
Date d'inscription
mardi 21 octobre 2014
Dernière intervention
14 février 2019
227
0
Merci
Bonjour Alcap, bonjour le forum,

Je ne vois qu'une seule explication, la cellule A2 contient un nom qui n'est pas STRICTEMENT identique au nom du fichier à ouvrir...
Bonjour Thau Theme,

Merci pour la réponse mais la colonne A contient bien le nom des fichiers, pas d'erreur de ce coté. Par contre la procédure suivante fonctionne :

Sub Test()

Dim fichier(2) As String
Application.ScreenUpdating = False

For i = 1 To 2
fichier(i) = Range("A" & i).Value
Next i

For i = 1 To 2
Workbooks.Open (fichier)
Next i

Application.ScreenUpdating = True
End Sub

Mais avec 2 boucles c'est pas très élégant !
As tu essayé la première procédure ?
Merci.
Commenter la réponse de ThauTheme
Messages postés
4463
Date d'inscription
mardi 21 octobre 2014
Dernière intervention
14 février 2019
227
0
Merci
Re,

Essaie comme ça :

Sub charger()
Dim CL As Workbook
Dim O As Worksheet
Dim chemin, fichier As String

Set CL = ThisWorkbook
Set O = CL.Worksheets("Feuil1") 'à adapter
chemin = "G:\"
For i = 1 To 2
fichier = chemin & O.Range("A" & i).Value
    Workbooks.Open (fichier)
Next i
End Sub

Bonsoir ThauTheme,

Merci pour la réponse, effectivement ça fonctionne, bravo, heureusement qu'il y a des érudits du VBA ! Quelle explication peut on apporter au fait que ça fonctionne avec les 2 boucles et pas une seule ?
Commenter la réponse de ThauTheme
Messages postés
4463
Date d'inscription
mardi 21 octobre 2014
Dernière intervention
14 février 2019
227
0
Merci
Re,

En fait, si tu stockes les noms de fichier dans un tableau de variables au préalable (fichier(i)) ça marche car on ne va plus lire le nom dans un cellule. En revanche, si tu utilises la référence à la cellule ça ne marche que pour le premier fichier qui s'ouvre. Dès lors, il devient le classeur actif. Donc la deuxième cellule de la boucle correspond à ce classeur et ne contient plus le nom du second fichier.
C'est pour cela que j'ai spécifié le classeur, le nom de l'onglet de ce classeur, avant de spécifier la cellule...

Je relis et je me demande si c'est bien clair ce que je dis ?!...
Commenter la réponse de ThauTheme