Lien entre plusieurs fichiers excel

Résolu
bgan Messages postés 12 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 23 juin 2009 - 22 juin 2009 à 14:10
cs_Joh76 Messages postés 47 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 14 octobre 2009 - 23 juin 2009 à 17:16
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

cs_Joh76 Messages postés 47 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 14 octobre 2009 3
23 juin 2009 à 17:16
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
3
cs_Joh76 Messages postés 47 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 14 octobre 2009 3
22 juin 2009 à 17:16
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
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
23 juin 2009 à 00:41
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
0
bgan Messages postés 12 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 23 juin 2009
23 juin 2009 à 08:54
comment puis je ouvrir les classeurs concernées? et les refermer par la suite?
0
Rejoignez-nous