Fonction recherche plusieurs variable recherchevens

Bonjour,

j'arrive a utiliser la fonction recherchevens , elle fonctionne sur la meme parge cependant je souhaite la faire fonctionner avec le détail suivant
RECHERCHEVENS(ColonneValeur As Range, Critere1 As Variant, PlageRecherche1 As Variant, Critere2 As Variant, PlageRecherche2 As Variant)

colonnevaleur : soit une colonne d'un autre fichier excel B

critere1 est une valeur de mon fichier excel A

plagerecherche1 soit une colonne d'un autre fichier excel B dans laquel on recherche le critere 1

critere2 est une valeur de mon fichier excel A

plagerecherche2 soit une colonne d'un autre fichier excel B dans laquel on recherche le critere 2

J'ai bien compris qu'il ne faut pas de cellule vide dans mes colonne de recherche.

Merci pour l'aide

Bonjour,

Au lieu de faire une demande comme ça brute de pomme, il serait bien de mettre le lien ou vous avez trouvé cette fonction

Fonction créée par h2so4 ici
https://forum.excel-pratique.com/s/goto/1035525

Bonne chance

Bonjour,

oui dsl, pour moi dans ma tête je pensais que cette fonction était connue par de nombreuses personnes.

merci pour le complement

bonjour,

voici une version adaptée (à tester)

Function RECHERCHEVENS(ColonneValeur As Range, Critere1 As Variant, PlageRecherche1 As Range, Critere2 As Variant, PlageRecherche2 As Range)
    'fonction de rechercheV avec plusieurs critères : 2 critères
    Dim counter As Long 'variable de compteur
    Dim lastLine As Long 'variable pour définir le nombre de lignes de la plage à traiter

    lastLine = PlageRecherche1.Parent.UsedRange.Rows.Count
    If Critere1 = "" Or Critere2 = "" Then 'les 2 critères doivent être non vides, sinon erreur
        RECHERCHEVENS = CVErr(xlErrRef)
        Exit Function
    End If
    counter = 1
    Do While counter <= lastLine
        If PlageRecherche1(counter).Value = Critere1 And PlageRecherche2(counter).Value = Critere2 Then
            If IsError(ColonneValeur(counter)) = True Then
                RECHERCHEVENS = CVErr(xlErrNA) 'erreur dans la colonne réponse
            Else
                RECHERCHEVENS = ColonneValeur(counter).Value
            End If
            Exit Function 'correspondance trouvée on arrête la recherche
        End If
        counter = counter + 1
    Loop
    RECHERCHEVENS = CVErr(xlErrNA) ' pas trouvé de donnée correspondant aux critères
End Function

re-bonjour,

une version à nombre de critères variable

Function RECHERCHEVENS(ColonneValeur As Range, ParamArray listecriteres() As Variant)
    'fonction de rechercheV avec plusieurs critères, dont le nombre peut être variable
    ' colonnevaleur : colonne contenant la valeur à renvoyer
    ' listecriteres : par paire de paramètres, colonne de recherche du critère et de la valeur à rechercher

    'exemple : RECHERCHEVENS(A:A;B:B;3;C:C;"PAUL";D:D;15), recherche la valeur de la colonne A qui correspond à une valeur 3 en colonne B, une valeur "PAUL" en colonne C et une valeur 15 en colonne D)

    Dim counter As Long 'variable de compteur
    Dim lastLine As Long 'variable pour définir le nombre de lignes de la plage à traiter
    Dim plagerecherche As Range
    Dim critere As Variant
    Dim i As Long, trouve As Boolean

    lastLine = ColonneValeur.Parent.UsedRange.Rows.Count
    counter = 1
    Do While counter <= lastLine
        trouve = True
        For i = LBound(listecriteres) To UBound(listecriteres) Step 2
            Set plagerecherche = listecriteres(i)
            critere = listecriteres(i + 1)
            If plagerecherche(counter).Value <> critere Then trouve = False: Exit For
        Next i
        If trouve Then
            If IsError(ColonneValeur(counter)) = True Then
                RECHERCHEVENS = CVErr(xlErrNA) 'erreur dans la colonne réponse
            Else
                RECHERCHEVENS = ColonneValeur(counter).Value
            End If
            Exit Function 'correspondance trouvée on arrête la recherche
        End If
        counter = counter + 1
    Loop
    RECHERCHEVENS = CVErr(xlErrNA) ' pas trouvé de donnée correspondant aux critères
End Function

Bonjour,

Merci pour la réponse rapide qui fonctionne a merveille avec l'aide du fichier joint.

Ici la table de recherche est un onglet de la même feuille. Ma table de recherche est en faite un onglet d'un fichier sur le réseau, comment faire ce lien dans la formule pour remplacer 'table de recherche'! ? j'ai testé plusieurs chose mais elle ne fonctionne pas.

Pour garantir que cette fonction marche bien, as tu une boucle qui supprimerais facilement les lignes avec cellules vide par exemple dans ton fichier les colones B,D,E dans l'onglet table de recherche.

Je te remercie pour le temps que tu as pu consacrer sur ma demande.

bonsoir,

Ma table de recherche est en fait un onglet d'un fichier sur le réseau, comment faire ce lien dans la formule pour remplacer 'table de recherche'! ?

le fichier contenant ta table de recherche doit être ouvert en excel sur ta machine.

Salut Merci pour tes retours rapide.

J'ai réussi a faire ma formule recherchevens avec les données qui sont sur mon autre fichier réseau.

Le fichier actualise bien les donnée lorsque les 2 fichiers réseau sont ouverts.

Cependant apres enregistrement lorsque je ferme les 2 fichiers excel et que je réouvre le fichier contenant la formule recherchevens les cellules sont en #valeur!

As tu une solution pour les valeurs restents apres enregistrement ?

Merci pour ton aide précieuse.

bonsoir,

As tu une solution pour les valeurs restent apres enregistrement ?

ouvrir le fichier table de recherche

Je souhaite que les valeurs sur le fichier avec recherchevens reste sans devoir réouvrir le fichier de la table de recherche.

bonjour,

dans ce cas, il faut passer par vba, powerquery ou manuellement faire un copier/coller en valeur du résultat de la formule.

Salut Merci pour tes infos, as-tu des pistes simple pour m'aiguiller ? Et si possible eviter le copier coller valeur.

Merci encore

Rechercher des sujets similaires à "fonction recherche variable recherchevens"