Syntaxe dans revoie de cellule

Bonjour à tous,

J'ai peu ou prou réussi avec l'aide de généreux bénévoles à créer une fonction qui scan le nom de fournisseurs dans des libellés.

Je rencontre néanmoins un nouveau problème que je vous soumet.

Function bn(s, lf)

t = Split(UCase(s), " ")

For i = LBound(t) To UBound(t)

For Each fournisseur In lf

fournisseur = UCase(fournisseur)

If fournisseur <> "" Then

If t(i) = fournisseur Then bn = fournisseur: Exit Function

End If

Next

Next i

bn = ""

End Function

Ici, la fonction va scanner les chaînes de caractères dans "s" et voir si une chaîne correspond à un fournisseur dans

ma liste.

Si tel est le cas, la fonction renvoi "fournisseur" dans ma liste.

Or, j'aimerais plutôt ceci:

Function bn(s, lf)

t = Split(UCase(s), " ")

For i = LBound(t) To UBound(t)

For Each fournisseur In lf

fournisseur = UCase(fournisseur)

If fournisseur <> "" Then

If t(i) = fournisseur Then bn = Sheets("Liste").Cells(fournisseur.Row, 1): Exit Function

End If

Next

Next i

bn = ""

End Function

Ici, la fonction ne renvoi pas "fournisseur" mais la cellule sur la ligne de "fournisseur", en colonne 1, comme sur la fonction ci dessus.

Malheureusement, cette fonction renvoi #VALEUR!, pouvez vous m'expliquer mon erreur et me corriger ?

Je vous remercie d'avance pour votre aide et vous en suis grandement reconnaissant.

Tylerdurden

Bonjour,

Vous avez utilisé "if" comme variable pour la plage des fournisseurs ?

For Each fournisseur In lf

Bonjour SabV,

Merci de ta réponse mais je ne vois pas de quoi parles tu. Il y a déja: "For each Fourniseur in lf".

L'erreur provient surtout de If t(i) = fournisseur Then bn = Sheets("Liste").Cells(fournisseur.Row, 1)

Bonjour,

à tester,

Function bn(s, lf)
t = Split(UCase(s), " ")
For i = LBound(t) To UBound(t)
    For Each fournisseur In lf
      n = fournisseur.Row
      fournisseur = UCase(fournisseur)
        If fournisseur <> "" Then
            If t(i) = fournisseur Then bn = Sheets("Liste").Cells(n, 1).Value: Exit Function
        End If
    Next
Next i
bn = ""
End Function
Rechercher des sujets similaires à "syntaxe revoie"