Du coup après plusieurs test, je crois avoir trouvé d'où vient le problème.
La macro pour l'instant arrive à récupérer le nom des fichiers et créer un onglet pour chaque fichier mais n'arrive pas à aller à l’intérieur de ces fichiers pour récupérer les valeurs dans l'onglet "classe".
J'ai testé avec une boucle for, pour lui demander de parcourir chaque onglet de chaque feuille et lorsque il tombe sur l'onglet "classe" il effectue la copie.
For Each onglet In ThisWorkbook.Worksheets
Sheets("classet").Range("A1:A50").Copy Destination:=wb.Sheets(onglet).Range("B1")
Next
Mais je tombe sur l'erreur incompatibilité de type pour la ligne :
Sheets("classe").Range("A1:A50").Copy Destination:=wb.Sheets(onglet).Range("B1")
Sub copie()
Dim monFichier As String
Dim wb As Workbook
Dim chemin As String
Dim i As Integer
Dim nom As String
Set wb = Workbooks(ThisWorkbook.Name) 'classeur reception
' On a besoin du chemin absolu du dossier
' Doit se terminer par \
chemin = ThisWorkbook.Path & "\"
' La fonction Dir(chemin, mode) permet de parcourir un dossier
' Ici je rajoute à mon chemin "*.xlsx",
' pour ne retrouver que mes fichiers Excel
' vbNormal permet de ne récupérer que des fichiers,
' vbDirectory récupère tout (dossiers et fichiers)
monFichier = Dir(chemin & "*.xlsx", vbNormal)
Do While monFichier <> ""
onglet = Split(monFichier, "_")(2)
wb.Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = onglet
Debug.Print onglet
'Sheets("test").Range("A1:AH3").Copy Destination:=wb.Sheets(onglet).Range("A1")
'Debug.Print Sheets("T15").Name
For Each onglet In ThisWorkbook.Worksheets
Sheets("classe").Range("A1:A50").Copy Destination:=wb.Sheets(onglet).Range("B1")
Next
Debug.Print wb.Sheets(onglet).Range("B1").Value
' Permet de passer au fichier suivant
monFichier = Dir
Loop
End Sub
Sinon je me suis penché sur les connexions et requètes avec
ADODB.Connection
Mais j'imagine qu'il y a plus simple juste pour récupérer des valeurs dans des cellules d'un fichier fermé...
Merci une nouvelle fois pour ton aide.