J’ai un tableau dont les colonnes sont des valeurs liées à différents fichiers externes, pour chaque colonne de données, la colonne d’après m’affiche la source. Je souhaiterai quand je fais ma recherche d’une valeur n’importe ou dans la feuille, qu’il m’affiche juste le résultat de la cellule à sa droite, j’ai essayé avec différentes formule index, equiv, rechechev, décaler mais je ne trouve pas… j’ai mis un exemple dans un fichier attaché.
Merci pour votre réponse, le problème avec vlookup est que je dois déterminer la colonne de recherche et celle de destination, mais la valeur à rechercher peut se trouver n’importe où dans mon tableau, pas seulement dans une colonne que je pourrais déterminer au départ, et donc la valeur à afficher est donc la colonne suivante selon la valeur trouvée et ne peut donc pas etre déterminée non plus au départ.
Dans le tableau fourni précédemment, j’avais indiqué que Julie devait m’afficher Machin (dans ce cas pas de soucis avec Vlookup) mais ma recherche pourrait aussi etre sur Paul et dans ce cas la valeur devrait afficher « Truc ». En gros la valeur a rechercher pourrait se trouver partout dans le tableau et la valeur à afficher devrait etre la cellule juste à droite de la cellule trouvée
Merci pour votre retour rapide, En effet cette solution pourrait me convenir, mais comme le but et d’insérer cette formule dans ma macro et comme il est possible que d’autres listes viennent se rajouter dans les colonnes suivantes, je souhaiterai que le fichier fonctionne sans devoir à chaque fois ajouter un vlookup dans la formule n’y a t il pas moyen de directement faire la recherche sur la totalité du tableau sans devoir ajouter un « range de colonne » peut etre avec une autre formule que vlookup?
J’ai encore une question, n’ayant pas l’habitude de travailler avec les boucles for each:
pouvez vous me dire comment bloquer la fin de la recherche si une valeur entrée ne fait pas partie de mon tableau?
voici le code
Private Sub Verify_Click()
Dim cellule As Range
For Each cellule In Range(« outsourced_list »)
If cellule = Study.Text Then
result.Value = cellule.Offset(0, 1)
Exit Sub
Else
Next
bonjour, autre methode avec « Find » , si la plage est assez grande
Sub chercher2()
Dim cellule As Range
With Range("O8")
Set cellule = ActiveSheet.Range("A:G").Find(.Value, lookat:=xlWhole)
If cellule Is Nothing Then
.Offset(1).Value = "???"
Else
.Offset(1).Value = cellule.Offset(, 1).Value
End If
End With
End Sub