VBA - Formula VLOOKUP

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 Sub

Je ne sais pas si je suis clair du coup le fichier le sera un peu plus je pense ^^'

66recherchev.zip (19.15 Ko)

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 Sub

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

Rechercher des sujets similaires à "vba formula vlookup"