Fonction recherche ligne / colonne

Bonjour la communauté,

Bien que ce soit étonnant, après une bonne heure de recherche sur internet je n'ai rien trouvé de concluant concernant ma requête.

J'espère que vous pourrez m'aiguillez dans la résolution de mon problème.

J'ai une matrice de produit en fonction de leurs noms. et je cherche à faire appaître le nom de mon produit en fonction du code recherché.

Voici un fichier résumant le problème. en N0, vous verrez une tentative infructueuse.

Notez que dans un soucis de confidentialité les noms des produits ont été remplacé par nom1, nom2...

Mon but est de trouver une fonction qui marche bien pour la retranscrire en VBA .

Merci de votre aide.

Bonjour,

Remarque : En principe on ne crée pas des tableaux sur toute la feuille !

On les limite exactement au nombre de lignes indispensables.

J'ai donc crée une plage nommée TProd (dans le gestionnaire de nom)

Créer dans un un module standard la macro suivante :

Function RECHPROD$(searchchr$)
Dim rng As Range, a, i, ii
Set rng = [TProd]
a = rng.Value
Do
For i = 2 To UBound(a)
    For ii = 1 To UBound(a, 2)
        If a(i, ii) = searchchr Then
            RECHPROD = a(1, ii)
            Exit Do
        End If
    Next
Next
Loop
End Function

Ensuite dans une cellule Excel on peut écrire :

=RECHPROD(198420) (par exemple)

On peut également appeler cette fonction via VBA.

A+

Infiniment merci Galopin01 pour cette solution très pratique !

PS : Je prend en compte ta remarque pour mes prochains tableaux.

Cordialement.

Important :

Rajouter

Exit Do 'avant le Loop
Loop

Sinon Excel ne répond plus si tu entres une valeur erronée !

La macro corrigée :
Function RECHPROD$(searchchr$)
Dim rng As Range, a, i, ii
Set rng = [TProd]
a = rng.Value
Do
For i = 2 To UBound(a)
    For ii = 1 To UBound(a, 2)
        If a(i, ii) = searchchr Then
            RECHPROD = a(1, ii)
            Exit Do
        End If
    Next
Next
Exit Do
Loop
End Function

A+

Rechercher des sujets similaires à "fonction recherche ligne colonne"