Bonjour à tous,

Je souhaite réaliser une Macro VBA utilisant des formules de type Vlookup (ou RechercheV pour les versions françaises) en utlisant comme plages de recherche des Classeurs et feuilles variables préalablement définis dans mon code.
J'ai un classeur A dans lequel j'écris ma formule Vlookup recherchant pour une cellule du classeur A une valeur du classeur "Mapping" (cette partie fonctionne), qui elle va renvoyer une donnée du classeur B (défini comme variable M2 dans ma macro) comprise dans la feuille B (définie comme W2 dans ma macro).

Cependant, à chaque fois que je lance la macro, Excel lance automatiquement "ouvrir fichier" afin que je redéfinisse ma variable M2 et ma feuille W2 alors que celles-ci sont déjà définies dans le code. De plus, le Vlookup ne renvoit rien.

Le code sera peut-être plus parlant:

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
Option Explicit

Dim W2 As Worksheet
Dim M2 As Workbook

Sub OpenMW()

Application.Dialogs(xlDialogOpen).Show                    ---------> je définis mon fichier B et feuille B en tant que variables M2 et W2
Set M2 = ActiveWorkbook
Set W2 = ActiveSheet

End Sub

Sub Calculs

Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(VLOOKUP(RC[-1],'[Mapping.xlsx]Sheet1'!R5C2:R136C3,2,FALSE)&1,'[M2]W2'!C3:C8,4,FALSE)),"""",VLOOKUP(VLOOKUP(RC[-1],'[Mapping.xlsx]Sheet1'!R5C2:R136C3,2,FALSE)&1,'[M2]W2'!C3:C8,4,FALSE))"

End Sub

Savez-vous ce qui cloche?

Merci