Bonjour, j'ai un problème lorsque j'exécute ma recherche V par macro.

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
39
 
 
Sub Macro1()
'
' Macro1 Macro
'
 Dim Ws1, Ws2 As Worksheet
 Dim m, p, t As Integer
 
 Set Ws1 = ThisWorkbook.Worksheets("contrats resp. tarifé")
    Set D = Nothing
        'je recherche la valeur sur la ligne des entêtes
        Set D = Ws1.Rows(1).Find("SIREN_MAITRE_RPR", , xlValues, xlWhole)
        'Je récupère ici dans p le numéro de la colonne si la valeur existe bien
        If Not D Is Nothing Then p = D.Column
        'denomcol = Left$(Cells(1, p).Address(0, 0), (p < 27) + 2)
 
 Set Ws2 = ThisWorkbook.Worksheets("en cours liste complète réseau")
'Nbl compte le nombre de lignes total
        Nbl = Ws2.Range("A1").CurrentRegion.Rows.Count
        Set C = Nothing
       'je recherche la valeur sur la ligne des entêtes
        Set C = Ws2.Rows(1).Find("Siren", , xlValues, xlWhole)
         'Je récupère ici dans p le numéro de la colonne si la valeur existe bien
        t = C.Column
       'j'insère une colonne avant la colonne trouvée
       If Not C Is Nothing Then Ws2.Columns(t).Select
        Selection.EntireColumn.Insert
     'je nomme l'entête de la nouvelle colonne insérée
     Ws2.Cells(1, C.Column - 1).Value = "Recherche_v"
     'j'initialise m qui correspond à la différence entre p et t pour pouvoir faire ma recherche v (m correspond à 17)
 
     m = p - t
     MsgBox m
     Ws2.Cells(2, C.Column - 1).Select
     ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[1],'contrats resp. tarifé'!C[m],1,FALSE)"
     Selection.AutoFill Destination:=Range(Cells(2, t), Cells(Nbl, t))
 
End Sub
je procède de cette manière parce que d'autres colonnes pourraient être ajouter plutard dans le fichier, ainsi utiliser le nom d'une colonne ou un numéro fixe dans ma formule forcerait un jour ou l'autre le résultat. Le problème viendrait peut être du fait que j'utilise "m" dans la formule. Mais que Pourrais je faire d'autre pour obtenir mon résultat ?


Merci d'avance pour vos réponses