Bonjour à tous !
Ayant épuisé tout mon potentiel de recherche ces derniers jours sans pour autant aboutir, je vous sollicite pour quelques conseils ou un petit coup de main!
Mon objectif est simple : Je possède plusieurs fichiers (avec plusieurs onglets) possédant tous la même structure. Je désire les analyser/comparer dans un fichier global. Le but est donc de pouvoir importer tel ou tel fichier dans l'excel d'analyse en créant un nouvel onglet à chaque fois.
Je suis pour l'heure capable d'importer les données en codant en dur la localisation des fichiers. Mais mon objectif est de pouvoir in fine choisir quel(s) fichier(s) je désire importer.
Je n'ai pas réussi à aboutir à l'aide d'une userform. Pour le moment j'en suis rendu à utiliser les fonctions suivantes (la première devrait me permettre de récupérer le nom du fichier choisi et la seconde importer le fichier en question) mais je n'arrive pas à faire le lien entre les deux :
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 Sub Nom_fichier() With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True .Show End With End Sub Sub Import_fichier() Set wbdest = ActiveWorkbook fichier = Dir("F:\AntoineSP\MacroExcel\Cas Test\*.xls") Do While fichier <> "" Set wbsource = Workbooks.Open("F:\AntoineSP\MacroExcel\Cas Test\" & fichier) 'open the file Set wksNewSheet = wbsource.Sheets("Feuil1") 'select the sheet where data is wksNewSheet.Activate 'activation of this sheet wksNewSheet.Select Range(Cells(2, 2), Cells(7, 5)).Select 'select the data you want to copy Selection.Copy 'copy the data selected wbdest.Activate 'activate the destination file i = ActiveSheet.UsedRange.Rows.Count 'count the number of line used in this file Range("A11") = i 'L'abscence de cette ligne induit une erreur de comptage malgré une valeur de i correcte... Cells(i + 2, 2).Select 'select the cells where you want to paste the data (from first free line) ActiveSheet.Paste 'paste the data wbsource.Close 'close the current source file fichier = Dir 'go to next file in the directory Loop 'restart the process with next file wbdest.Activate End Sub
Je vous remercie par avance pour vos petits conseils!
Partager