Formule Excel pour plusieurs résultats

Bonjour à tout le monde,

Je recherche une formule qui permettrait qui permettrait, en renseignant un code postal en case B4 sur l'onglet "Filtre", d'extraire tous les résultats rattachés à ce code postal (B7=nom du cse ; C7=ville)
Dans mon exemple, j'ai indiqué 92700 et j'ai indiqué les 4 résultats liés à ce code postal

La liste se trouve dans l'onglet "Liste"

Sauriez vous me guider ?
Recherchev n'est pas suffisante car elle ne remonte qu'un seul résultat 🤕

Mon Excel est la version 2007 (sans les formules "filtre"

Bien à vous,
Belloch

Bonjour Bellam, bonjour le forum,

Par Formules je ne sais pas faire... Si une proposition VBA t'intéresse, je te propose l'événementielle Change ci-dessous (dans le composant Feuil1(Filtre)) :

Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim OL As Worksheet 'déclare la variable OL (Onglet Liste)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variable TL (tableau des Lignes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable K (incrément)

If Target.Address <> "$B$4" Then Exit Sub 'si le changement a lieu ailleurs qu'en B4 (la cible), sort de la procédure
If Me.Range("B7").Value <> "" Then Me.Range("B6").CurrentRegion.Offset(1, 0).ClearContents 'efface les anciennes données
If Target = "" Then Exit Sub 'si la cible est effacée, sort de la procédure
Set OL = Worksheets("Liste") 'définit l'onglet OL
TV = OL.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau de valeurs TV (en partant de la seconde)
    If CStr(TV(I, 1)) = Target.Value Then 'condition : si la donnée ligne I colonne 1 de TV (convertie en texte) est égale à la valeur de la cible
        K = K + 1 'incrémente K
        ReDim Preserve TL(1 To 2, 1 To K) 'redimensionne le tableau des lignes (2 lignes, K colonnes)
        TL(1, K) = TV(I, 3) 'récupère dans la ligne 1 (colonne K) de TL la donnée ligne I colonne 3 de TV (=> Transposition)
        TL(2, K) = TV(I, 2) 'récupère dans la ligne 2 (colonne K) de TL la donnée ligne I colonne 2 de TV (=> Transposition)
    End If 'fin  de la condition
Next I 'prochaine ligne de la boucle
'si K est positive, renvoie dans la cellue B7 redimensionnée, le tableau TL transposé
If K > 0 Then Me.Range("B7").Resize(K, 2).Value = Application.Transpose(TL)
End Sub

Tape le code postal en B4 et tu auras le résultat...

Le fichier :

3bellam-ep-v01.xlsm (160.87 Ko)

Bonjour ThauTheme,

Merci pour ta réponse, je n'ai rien contre VBA, mais je ne sais pas faire !

Pourrais tu, dans ce cas, m'enregistrer le fichier avec ta proposition VBA Change ?

Merci à toi et bonne soirée,

Belloch

Re,

Et d'après toi il fait le fichier que je t'ai envoyé c'est pour quoi ?!...

ThauTheme, je n'avais pas vu ton fichier VBA, désolé !

Encore une demande : j'ai ajouté dans l'onglet Liste une colonne avec des numéros ... J'ai essayé, en partant de ta matrice et en la modifiant, de faire remonter ce numéro dans l'onglet Filtre (en D7) mais je suis une burne et ça ne match pas !

Saurais tu faire ?

Après je te laisse tranquille, promis !

1bellam-ep-v01.xlsm (178.39 Ko)

Bonsoir Bellam, bonsoir le forum,

En pièce jointe la version 02 :

9bellam-ep-v02.xlsm (172.36 Ko)

Top ! Merci champion !

A+

Belloch

Rechercher des sujets similaires à "formule resultats"