Recherche de valeurs

Bonjour

Je recherche une formule qui me permette de récupérer un nom qui est à la fois dans un tableau et une liste.

Fichier joint

Merci pour l'aide

No

Bonjour,

Une fonction perso matricielle :

Function VILLE(Plage As Range, Liste As Range) As String()

    Dim Cel As Range
    Dim Trouve As Range
    Dim Tbl() As String
    Dim I As Integer

    For Each Cel In Liste

        Set Trouve = Plage.Find(Cel.Value, , xlValues, xlWhole)

        If Not Trouve Is Nothing Then

            I = I + 1: ReDim Preserve Tbl(1 To I)
            Tbl(I) = Cel.Value

        End If

    Next Cel

    VILLE = Tbl

End Function

ton classeur avec un exemple d'utilisation (en .xlsm contient la macro ci-dessu) :

Bonjour et merci pour la réponse rapide

Cependant je voulais éviter de résoudre ce problème avec une macro.

J'envisageais quelque chose de plus simple , du style si la valeur est dans le tableau et dans la liste alors elle se met dans la cellule L7 ?

Est ce possible ??

No

Bonjour No, Theze,

s'il suffit de marquer chaque nom une seule fois,

en cellule =test(B9:M29;U1:U17)

Function test(plg As Range, liste As Range)
Dim c As Range
Application.Volatile
For Each c In liste
 If Application.CountIf(plg, c) > 0 Then test = test & " " & c.Value
Next
End Function

Bonsoir à tous,

Si le but est de faire ressortir les valeurs de la liste présentes dans le tableau, une simple MFC dans la liste n'est-elle pas suffisante ?

Bravo Theze et sabV pour vos codes,

Cordialement,

Bonsoir

Merci pour les réponses, mais je cherche toujours une hypothèse sans macro

Concernant la dernière solution , en fait il faut récupérer la valeur dans une autre cellule L7 par exemple ,si cette valeur est à la fois dans le tableau et dans la liste.....

Cdlt

Re,

Bien que la solution d'Isabelle réponde bien à ton problème, voici une autre proposition, sans macro...

Bonne soirée,

Bonsoir

Cette dernière solution me convient.....en fait lorsque le nom apparait dans les deux tableaux cela signifie qu'il ne doit pas être utilisé. Cependant, même si je ne devrais pas avoir plus d'un nom dans la cellule récupératrice, comment mettre une séparation ou un écart plus important au cas où il y aurait deux noms. En effet , actuellement tous les noms se mettent les uns près les autres.

Encore merci et bonne soirée

Cdlt

No

Re,

Le résultat en C3 provient d'une concaténation des cellules P2 à P19, j'avais rajouté un espace entre chaque valeur.

Le souci, c'est que dans la liste , il y a des blancs et donc les espaces entre chaque valeur peut varier.

Rajout d'une colonne supplémentaire qui supprime les vides entre les valeurs, on concatène alors de R2 à R19, les espaces sont réguliers.

=CONCATENER(R2&"   "&R3&"    "&R4&"   "&R5&"   "&R6&"   "&R7&"   "&R8&"   "&R9&"   "&R10&"   "&R11&"  "&R12&"   "&R13&"   "&R14&"   "&R15&"   "&R16&"   "&R17&"   "&R18&"   "&R19)

(Pour augmenter les espaces, tu agis entre les 2 ").

Rajout d'un séparateur (avec un espace avant et un après) entre chaque valeur, pas terrible comme résultat,

=CONCATENER(R2&" / "&R3&" / "&R4&" / "&R5&" / "&R6&" / "&R7&" /"&R8&" / "&R9&" / "&R10&" / "&R11&" / "&R12&" / "&R13&" / "&R14&" / "&R15&" /"&R16&" / "&R17&" / "&R18&" / "&R19)

Je te joints la version d'Isabelle, pour moi c'est la solution que je retiendrai....j'ai juste augmenter les espaces entre chaque valeur.

(1 seul calcul alors que moi j'ai 2 colonnes de calculs intermédiaires, )

Je ne peux pas faire mieux,

Cordialement,

Rechercher des sujets similaires à "recherche valeurs"