Lien entre plusieurs fichiers excel [Résolu]

Signaler
Messages postés
12
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009
-
Messages postés
47
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
14 octobre 2009
-
Bonjour,
Mon probleme est simple je désire récupéré la valeur de différentes cellules qui se trouvent dans les fichiers excel du répertoire courant.
J'ai écrit du code mais il plante au moment d'écrire dans le fichier courant: Subscript out of range.
je ne sais pas d'où vient l'erreur si quelqu'un pourrait m'aider.
Merci d'avance je met le code

Private Sub CommandButton2_Click()

Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i As Integer
i = 7

    Set fso = CreateObject("Scripting.FileSystemObject")
    NomDossier = ThisWorkbook.Path
    If NomDossier = "" Then Exit Sub
    Set Dossier = fso.getfolder(NomDossier)
   
    Set Files = Dossier.Files
    If Files.Count <> 0 Then
        'Sheets.Add
        For Each File In Files
            i = i + 1
                       
            ThisWorkbook.Sheets("Rapport").Range("I" & i).Value = Workbooks(File.Path).Sheets("Rapport").Range("E4").Value
            Sheet3.Range("H" & i).Value = Workbooks(File.Path).Worksheet("Rapport").Range("C2").Value
           
           
           
        Next
    End If
    
        
   
End Sub

4 réponses

Messages postés
47
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
14 octobre 2009
3
Bonjour, pour ouvrir puis fermer un classeur tu peux procéder comme suit:

Public Classeur As Excel.Workbook
Workbooks.Open "C:\...\MonClasseur.xls"
Set Classeur = Workbooks("MonClasseur.xls")
Classeur.Close
set Classeur=Nothing

Cordialement
Messages postés
47
Date d'inscription
dimanche 16 mars 2008
Statut
Membre
Dernière intervention
14 octobre 2009
3
Bonjour,
Quand tu utilises la méthode range, la variable qui est entre ses parenthèse doit être du type string.
Essaye ça:

Dim strCell1 as string
Dim strCell2 as string
.../...
For Each File In Files
     i = i + 1          
     strCell1="I" & i    
     strCell2="H" & i
   ThisWorkbook.Sheets("Rapport").Range(strCell1).Value = Workbooks(File.Path).Sheets("Rapport").Range("E4").Value
   Sheet3.Range(strCell2).Value = Workbooks(File.Path).Worksheet("Rapport").Range("C2").Value        
Next

Cordialement
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Bonjour
Il me semble que les classeurs du répertoire Workbooks(File.Path), n'ont pas été ouvert pour y récupérer des valeurs de cellules

CNTJC
Messages postés
12
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
23 juin 2009

comment puis je ouvrir les classeurs concernées? et les refermer par la suite?