Bonjour à toutes et à tous,
Je travaille actuellement sur un VBA dont le but est simple de synthétiser plusieurs fichiers Excel.
Sur chaque fichier excel, j'ai un tableau avec en haut à gauche une case "Exercices" et en bas à droite une case "Fin tableau". On peut ainsi définir la taille du tableau. La longueur des tableaux diffère mais pas leur largeur qui est donc la même.
Je souhaiterais merger tout ces tableaux sur un fichier Excel de synthèse.
Je vous mets un petit jpg pour vous expliquer en PJ.
Voici le code dont je m'inspire, mais je pense pas que ca soit la meilleure méthode (pour l'exemple je vais chercher sur un seul fichier pour le moment, mais le problème, c'est que je n'arrive pas à relire avec les coorodnnées enregistrées) :
Merci d'avance de vos propositions !
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 Sub ImporterDonnees() Dim Chemin As String, Fichier As String, CaseInitialeApplication As String, CaseFinaleApplication As String, CaseInitialeExercice As String, CaseFinaleExercice As String, CaseInitialeAtelier As String, CaseFinaleAtelier As String 'A ADAPTER : ici adapter le chemin d'accès au répertoire contenant le fichier source des données Chemin = "J:\Missions\Nouvelle Méthode\" 'A ADAPTER : nom du fichier source Fichier = "Cholet.xlsx" Workbooks.Open (Chemin & Fichier) Visible = False Workbooks(Fichier).Activate Sheets("Cholet").Activate CaseInitialeExercice = Cells.Find("Exercices", , xlValues).Address CasesFinaleExercice = Cells.Find("Fin tableau", , xlValues).Address Workbooks(Fichier).Close 'A ADAPTER : plage des données à importer 'ICI : Feuil1'!$A$1:$F$10 ThisWorkbook.Names.Add "plage", _ RefersTo:="='" & Chemin & "[" & Fichier & "]Cholet'!CaseInitialeExercice:CasesFinaleExercice" 'A ADAPTER : nom de la feuille 'Ici Feuil2 doit être remplacé par le nom d'une feuille vierge de ce classeur (classeur qui va importer les données) With Sheets("Tableau Global") 'A ADAPTER : plage des données à importer 'ICI : [A1:F10] .[CaseInitialeExercice:CasesFinaleExercice] = "=plage" 'A ADAPTER : plage des données à importer 'ICI : [A1:F10] .[CaseInitialeExercice:CasesFinaleExercice].Copy 'A ADAPTER : Nom de la feuille devant accueillir les données + 1ère cellule ou copier ces données Sheets("Tableau Global").Range("A1").PasteSpecial xlPasteValues 'A ADAPTER : plage des données à importer 'ICI : [A1:F10] .[CaseInitialeExercice:CasesFinaleExercice].Clear End With End Sub
Rémi
Partager