XL 2013 Qui connaît formule RecherchevTOP?

titiborregan5

XLDnaute Accro
Bonjour le forum,

je viens de récupérer un fichier qui contient la formule =recherchevtop; formule dont je n'ai jamais entendu parler et dont la présence sur internet est très proche du 0 selon mes 1ères recherches Google.

Je viens donc sur le forum voir si les spécialistes du coin en ont déjà entendu parler?

De ce que j'en ai vu, il n'y a que 3 arguments :
  1. la valeur cherchée, où le respect de la casse est important.
  2. la plage où l'on cherche mais que sur une seule colonne et non une matrice multi colonnes comme avec la recherchev classique
  3. la plage contenant l'info qu'on veut rapatrier, qui peut se trouver n'importe où (non continue, à droite, en dessous etc.)
J'ai essayé de copier mon onglet dans un nouveau classeur pour vous l'enregistrer mais la fonction n'existe plus (#Nom) dans ce nouveau classeur. Il doit sûrement s'agir d'un complément. Si oui lequel?

Et quelle différence avec la recherchev classique?
Elle semble plus réagir comme un index(equiv()) renvoyant un numéro de ligne pour aller chercher l'info dans l'autre plage, on perd la notion de colonne.

Merci aux bonnes âmes

Bonne journée
T.
 

Pièces jointes

  • Screen Shot 10-24-17 at 11.07 AM.JPG
    Screen Shot 10-24-17 at 11.07 AM.JPG
    20 KB · Affichages: 32
  • Screen Shot 10-24-17 at 11.14 AM.JPG
    Screen Shot 10-24-17 at 11.14 AM.JPG
    376.7 KB · Affichages: 34

titiborregan5

XLDnaute Accro
Hello Benoit,

Ah yes! Merci pour ta réponse rapide ! Comment j'ai fait pour ne pas y penser ??? :confused:
Je mets ici le code VBA car pas vraiment saisi ce que ça voulu dire.
Code:
 Public Function RECHERCHEVTOP(MyCell As Range, MyIn As Range, MyOut As Range) As String
    
    Dim ValMyCell As String
    Dim LocalCell As Range
    Dim LocalValCell As String
    Dim Answer As String
    
    Answer = ""
    
    ValMyCell = MyCell.Value

    Entete = True

    For Each LocalCell In MyIn
        LocalValCell = LocalCell.Value
        If LocalValCell <> "" Then
            Entete = False
            Else: If Not Entete Then Exit For
        End If
        If (LocalValCell = ValMyCell) Then
            Answer = MyOut.Cells(LocalCell.Row - MyIn.Cells(1, 1).Row + 1, 1).Value
            Exit For
        End If
    Next

    RECHERCHEVTOP = Answer
     
End Function
Bon en gros de ce que j'ai vu ça ressemble à un recherchev améliorée (plus flexible).

Je supprime le vote du coup car aucun sens!

encore merci.
 

titiborregan5

XLDnaute Accro
Ok c'est ce que je pensais!!
Un grand merci car d'un truc qui paraît ultra compliqué il s'agit d'un index(equiv()).
J'avais pas tout faux mais merci de me l'avoir confirmé.

Du coup ma question qui en découle : index(equiv()) existe depuis combien de temps/quelle version?

Et après je clos le post ;)

Thanks again