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 !