Charger fichiers

Alcap -  
ThauTheme Messages postés 1564 Statut Membre -
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

3 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    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...
    0
    1. Alcap
       
      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.
      0
  2. ThauTheme Messages postés 1564 Statut Membre 160
     
    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

    0
    1. Alcap
       
      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 ?
      0
  3. ThauTheme Messages postés 1564 Statut Membre 160
     
    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 ?!...
    0