Syntaxe VLOOKUP en VBA - ouverture de Workbook dynamique
Bonjour à tous,
Je souhaite faire un comparatif entre deux fichiers de versions différentes où figurent des lignes de commandes (le fichier ouvert V1.2, sur lequel est présent le bout de macro ci-dessous, et l'autre à aller chercher, V1.1 dans mon exemple) .
Grâce à l'enregistreur de macro, j'ai pu trouver la "traduction" VBA de la fonction RECHERCHEV, en mode "R1C1" mais j'aimerais la rendre un peu plus dynamique, et donner le choix à l'utilisateur d'aller chercher lui-même le fichier qu'il veut comparer (qui contient par défaut la feuille k€, cela peut rester fixe).
Pour cela je compte calculer la première valeur puis utiliser la méthode Autofill afin de remplir les n lignes de commandes non vides.
Code:
1 2 3 4 5 6
|
'RECHERCHEV des commandes présentes dans la version précédente
Range("A9").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(k!R[-5]C[4],'Chemin\...\[Fichier_V1.1]k'!C5,1,FALSE)"
Selection.AutoFill Destination:=Range(Cells(9, 1), Cells(der_lig, 1)) |
Cette méthode marche parfaitement quand le chemin et donc le nom du classeur (Fichier_V1.1) est fixe, mais ce que je souhaiterais c'est rendre dynamique le chemin d'accès et la prise en compte dans VLOOKUP.
J'avais pensé à dimensionner un fichier "previous", que l'utilisateur sélectionnerait, puis intégrer le nouvel objet "previous" dans la VLOOKUP (l'onglet k€ ne bouge pas, k€ existe dans toutes les versions du fichier)
Mais c'est là que le bât blesse, j'ai essayé ça :
Code:
1 2 3 4 5 6 7 8 9
|
Dim previous
previous = Application.GetOpenFilename(, , "Sélectionnez votre source de données")
'RECHERCHEV des commandes présentes dans la version précédente
Range("A9").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(k!R[-5]C[4],'Chemin\...\[previous]k'!C5,1,FALSE)"
Selection.AutoFill Destination:=Range(Cells(9, 1), Cells(der_lig, 1)) |
Cela ne marche pas ... :roll:
Alors ma question est assez simple : comment faire prendre en compte à VLOOKUP le fichier générique "previous" ? :)
D'avance, merci !