Bonjour à tous,
Je cherche à réaliser la fonction : =recherche(valeur_cherchée ; vecteur_recherche ; vecteur_résultat).
Pour mes données cela donne : =RECHERCHE(B4;valeurs!$C$2:$C$32;valeurs!$B$2:$B$32)
J'ai pu reproduire cette formule en vba via :
mais est-il possible de réaliser cette fonction via des dictionnaires et/ou tableaux ?
J'essaie d'utiliser la fonction qui a été développée par M boisgontier.
sur mes données. (fichier en pièce jointe)
mais je n'arrive pas à adapter le code de façon à ce que la fonction sélectionne la valeur inférieure proche du nombre recherché (comme dans =recherche(valeur_cherchée ; vecteur_recherche ; vecteur_résultat) .
Merci à tous ceux qui s'attarderons sur ce problème.
Bonne journée à tous
Je cherche à réaliser la fonction : =recherche(valeur_cherchée ; vecteur_recherche ; vecteur_résultat).
Pour mes données cela donne : =RECHERCHE(B4;valeurs!$C$2:$C$32;valeurs!$B$2:$B$32)
J'ai pu reproduire cette formule en vba via :
Code:
Cells(i, j) = WorksheetFunction.Lookup(Rnd(), range1, range2)
J'essaie d'utiliser la fonction qui a été développée par M boisgontier.
Code:
Function RechxM(clé As Range, champRech As Range, ChampResult, messageErreur)
Application.Volatile
Set d = CreateObject("Scripting.Dictionary")
a = champRech.Value
b = clé.Value
c = ChampResult.Value
For i = LBound(a) To UBound(a)
d(a(i, 1)) = c(i, 1)
Next i
Dim temp()
ReDim temp(LBound(b) To UBound(b), 1 To 1)
For i = LBound(b) To UBound(b)
If d(b(i, 1)) <> "" Then temp(i, 1) = d(b(i, 1)) Else temp(i, 1) = messageErreur
Next i
RechxM = temp
End Function
mais je n'arrive pas à adapter le code de façon à ce que la fonction sélectionne la valeur inférieure proche du nombre recherché (comme dans =recherche(valeur_cherchée ; vecteur_recherche ; vecteur_résultat) .
Merci à tous ceux qui s'attarderons sur ce problème.
Bonne journée à tous
Pièces jointes
Dernière édition: