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 |
Partager