VBA - Formula VLOOKUP
n
Bonjour,
J'ai une formule qui liste toute les référence suivant une valeur, et reporte les cellules correspondante à la ligne dans un autre tableau.
Pour celà c'est une RechercheV qui fait le travail via formule.
J'aurais aimé que dans le nouveau tableau soit reporter plusieur valeurs dans un même cellule du style.
Voici la formule de base:
suite.Offset(0, 2).Formula = "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",2,FALSE)" & "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",3,FALSE)" & "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",4,FALSE)"Formule que j'aurais aimé avoir en sortie:
[/=VLOOKUP($G$2;Matrice!$A$2:$E$7;2;FAUX)&"-"&VLOOKUP($G$2;Matrice!$A$2:$E$7;3;FAUX)&"-"&VLOOKUP($G$2;Matrice!$A$2:$E$7;4;FAUX)code]
Voici le code complet:
[code]Sub test()
Dim suite As Range
Dim Colonne1 As Range
Dim trouve As Range
Dim Date1 As Range
'Cellule cible
Set Date1 = Sheets("Matrice").Range("J1")
Set Colonne1 = Sheets("Matrice").Range(("A2"), Sheets("Matrice").Range("A2").End(xlDown))
'Recherche les références
For Each Cellule In Sheets("Matrice").Range("E2:E" & Sheets("Matrice").Range("E65535").End(xlUp).Row)
Set suite = Sheets("Matrice").[G65536].End(xlUp).Offset(1, 0)
Set trouve = Colonne1.Find(Cellule.Value, LookIn:=xlValues, lookat:=xlWhole)
If Cellule = Date1 Then
'Retranscrit les données
Sheets("Matrice").Range("G" & Sheets("Matrice").Range("G65535").End(xlUp).Row + 1) = Sheets("Matrice").Cells(Cellule.Row, 1)
suite.Offset(0, 1).Formula = "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",5,FALSE)"
suite.Offset(0, 2).Formula = "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",2,FALSE)" & "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",3,FALSE)" & "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 5).Address & ",4,FALSE)"
End If
Next
End SubJe ne sais pas si je suis clair du coup le fichier le sera un peu plus je pense ^^'
Bonjour,
Essaye le code suivant :
Sub copier()
derLig = Range("A" & Rows.Count).End(xlUp).Row
j = 2
For i = 2 To derLig
If Cells(i, "E") = "Yes" Then
Cells(j, "G") = Cells(i, "A")
Cells(j, "H") = Cells(i, "E")
Cells(j, "I") = Cells(i, "B") & " - " & Cells(i, "C") & " - " & Cells(i, "D")
j = j + 1
End If
Next i
End Subn
Bonjour Raja,
Merci beaucoup ç amarche nickel, bon pour des raisons d'adaptation à mon code, j'ai réussi à finir avec le mode formula qui donne:
suite.Offset(0, 7).Formula = "=VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 18).Address & ",8,FALSE)& "" - ""&VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 18).Address & ",9,FALSE)& "" - ""&VLOOKUP(" & suite.Address & ",'" & Colonne1.Parent.Name & "'!" & Colonne1.Resize(, 18).Address & ",10,FALSE)"Encore merci pour ton aide