Bonsoir à tous,

Je cherche à consolider deux fichiers (plus exactement : les 3 premières colonnes de la troisième feuille de chaque fichier, mais peu importe) par l'intermédiaire d'une macro. Ne connaissant pas a priori le nom de ces deux fichiers, je demande à l'utilisateur de les choisir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Classeur1 = Application.GetOpenFilename("Classeurs Excel,*.xls")
If Classeur1 = False Then Exit Sub
Classeur2 = Application.GetOpenFilename("Classeurs Excel,*.xls")
If Classeur2 = False Then Exit Sub
(Au passage, si vous connaissez plus pratique, je suis preneur.)

J'aimerais passer ces noms de fichiers, que je ne connais pas, en "argument" à la méthode Consolidate.

Ces deux noms sont stockés dans deux variables : "Classeur1" et "Classeur2".

"Classeur1" et "Classeur2" contiennent le chemin absolu (U:\MonChemin\Fichier1]), et pas le chemin relatif (Fichier1). J'aimerais que ce soit le cas, pour que, dans le bout de code suivant, les variables "Classeur1" et "Classeur2" soient interprétées, et remplacées par le nom de fichier qui correspond :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Workbooks.Open fileName:= _
        "U:\MonChemin\Synth.xls"
'(C'est le fichier de synthèse dans le quel je veux faire ma consolidation.)
 
Selection.Consolidate Sources:=Array( _
        "'U:\MonChemin\[Classeur1]Feuil3'!A:C" _
        , _
        "'U:\MonChemin\[Classeur2]Feuil3'!A:C" _
        ), Function:=xlSum, TopRow:=True, LeftColumn:=True, CreateLinks:=False
(Et d'ailleurs, même si mes variables contiennent des chemins relatifs, est-ce que cette syntaxe va fonctionner ?)
Et si vous avez plus simple pour consolider deux fichiers dont le nom est inconnu a priori, je suis preneur aussi.

N'hésitez pas à me poser des questions si vous ne comprenez pas.

Merci d'avance pour vos réponses, et bon courage.