Bonjour à tous,

Je viens vous demander de l'aide pour une instruction que je n'arrive pas à développer.

J'ai 3 fichiers EXCEL :
1. Un contenant une fiche concernant des informations sur des armoires de commande de communes
2. Un fichier contenant une liste déroulante de communes et un bouton "Transfert"
3. Un (pour le moment vide), qui contiendra les informations récupérées dans le premier via le bouton du second...

En cliquant sur le bouton "Transfert" après avoir choisi ma commune, je dois parcourir tous les dossiers et sous dossier de la commune pour récupérer les fichiers EXCEL.
Ensuite j'ouvre chaque fiche, et j'aimerais enregistrer des cellules précises dans un tableau de valeurs. Afin de pouvoir les ressortir dans le fichier 3.

En me renseignant sur le web, j'ai trouvé quelques informations sur la construction de tableau VBA mais je n'arrive pas à faire un algo compétent.

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
 
Sub Transfert_Armoires()
 
Dim NomDossier As String
Dim CheminDossier As String
' Déclaration du tableau
Dim TabInformation
 
' On récupère le nom sélectionné dans la liste déroulante
NomDossier = Workbooks(1).Worksheets(1).Cells(7, 2)
' On récupère le chemin où la recherche doit s'effectuer
CheminDossier = "Y:Relevés commandes\" + NomDossier
 
With Application.FileSearch
    ' Nouvelle recherche
    .NewSearch
    ' Dossier(s) de recherche :
    .LookIn = CheminDossier
    ' Fichiers à rechercher
    .Filename = "*.xlt"
    .FileType = msoFileTypeExcelWorkbooks
    ' Activation de la recherche dans les sous-dossiers
    .SearchSubFolders = True
    ' On éxécute tout ça !
    .Execute
 
    For Ctr = 1 To .FoundFiles.Count 
        ' Pour chaque fichier trouvé, on ouvre et on récupère les données
        Workbooks.Open (.FoundFiles(Ctr))
        ' C'est ici qu'il faut que je fasse mon traitement pour récupérer les infos
        ' J'ai 23 valeurs à récupérer dans chaque fichier
    Next
 
 End With
End Sub
Déjà je ne sais pas quel type de tableau déclarer, les arguments devraient correspondre aux lignes et colonnes du tableau excel où je dois transférer les informations.
Peut être un tableau du type : TabInfos(ligne as integer, colonne as integer)
Ce qui donnerait

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Dim ligne as integer
 
  For Ctr = 1 To .FoundFiles.Count 
        ' Pour chaque fichier trouvé, on ouvre et on récupère les données
        Workbooks.Open (.FoundFiles(Ctr))
        ligne = 2
        TabInfos(ligne,1) = Range("E4")
        TabInfos(ligne,2) = Range("C5")
        TabInfos(ligne,3) = Range("E6")
        [...]
        ligne = ligne + 1
  Next
Merci d'avance pour votre aide et bonne journée