Bonjour,
En esperant être le plus clair possible :
Je souhaite créer un module permettant d'aller récupérer une liste d'information dans un grand nombre de fichier excel situé dans une arborescence du type dossier/sous-dossiers/sous-sous-dossiers/../fichier.xls
Les informations récupérées doivent être listées dans les lignes et colonnes d'un classeur existant et possèdant déjà de nombreux champs informés. Il faut donc qu'une information importé des classeurs soit reconnue dans celui existant (mais mon probleme n'est pas là).
Chacun des classeurs 'Excel' ont un début de nom commun.
Ils sont également tous structurés de la même façon.
Voilà où j'en suis.
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
40
41
42
43
44
45
46
47
48 Dim s As String Dim n As Double Function trouvenum_precedent(num As String) As Double ' retourne le numéro de ligne ' du numéro passé en paramètre Dim c As Range Set c = Workbooks("donnes-recuperer.xls").Worksheets("Feuill1").Range("U:U").Find(num) If c Is Nothing Then MsgBox (num & " non trouvé ") trouvenum_precedent = "0" Else trouvenum_precedent = c.Row End If End Function Sub recup_donnees() Workbooks.Open Filename:="D:\partage\Dossier\Sous-Dossier\Sous-Sous-Dossier\Données\Annexe \01\nom1\" & "données.xls" s = Workbooks("données.xls").Worksheets("Feuil1").Cells(3, 1) n = InStrRev(s, " ") s = Right(s, Len(s) - n) n = trouvenum_precedent(s) For i = 52 To 71 Workbooks("donnes-recuperer.xls").Worksheets("Feuill1").Cells(n, i) = Workbooks("données.xls").Worksheets("Feuil1").Cells(i - 47, 7) Next i Workbooks("données.xls").Close False Workbooks.Open Filename:="D:\partage\Dossier\Sous-Dossier\Sous-Sous-Dossier\Données\Annexe \01\nom1\" & "données.xls" s = Workbooks("données.xls").Worksheets("Feuil2").Cells(3, 1) n = InStrRev(s, " ") s = Right(s, Len(s) - n) n = trouvenum_precedent(s) For i = 72 To 87 Workbooks("donnes-recuperer.xls").Worksheets("Feuill1").Cells(n, i) = Workbooks("données.xls").Worksheets("Feuil2").Cells(i - 67, 7) Next i Workbooks("données.xls").Close False End Sub
Pour l'instant le contrat est remplit pour une seul importation.
Je voudrais savoir s'il est possible d'écrire une fonction permettant d'aller scanner les informations dans une arborescence contenant environ 200 fichiers excel.
(les fichiers excels ont en commun le début de leur nom ainsi que leur structure)
Merci.
>> imalgene
Partager