Bonjour,
J'ai écris une fonction qui permet à l'ouverture de mon fichier excel:
1) d'aller dans tous les sous-dossiers du fichier courant
2) de récupérer les fichiers excels de ces sous-dossiers
3) de récupérer la valeur d'une cellule de ces fichiers excels

Voici le code (c'est en anglais par habitude de programmation):


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub Workbook_Open()
Dim fso
Dim objFolder
Dim objSubFolders
Dim objSubFolder
Dim objOutputString
Dim objSubFiles
Dim objSubFile
 
'Clearing Content of the tests listing table
Range("$A$21:$E$40").ClearContents
 
'Creating File System Object
Set fso = CreateObject("Scripting.FileSystemObject")
 
'Getting the Folder Object
Set objFolder = fso.GetFolder(thisworkbook.Path)
 
'Getting the list of SubFolders
Set objSubFolders = objFolder.SubFolders
 
'Set the initial line to 21
Line = 21
 
'Looping on subFolders of the current WorkSheet
For Each objSubFolder In objSubFolders
    Set objSubFiles = objSubFolder.Files
    'Looping on Files of the current subFolder
    For Each objSubFile In objSubFiles
    If fso.getExtensionName(objSubFile) = "xlsm" Then
    Cells(Line, 1) = Workbooks(objSubFile).Sheets(1).Range("A1").Value
    Line = Line + 1
    End If
    Next
Next
 
 
 
End Sub

Le problème est qu'excel me jette lorsque je lance le fichier excel avec l'erreur:
"incompatibilité de type"
erreur qui se produit à la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Cells(Line, 1) = Workbooks(objSubFile).Sheets(1).Range("A1").Value
soit lors de la récupération de la valeur de la cellule des fichiers du sous-dossier.
Je ne comprend pas trop pourquoi...
Merci d'avance,