XL 2016 remplir cellule avec plusieurs valeurs issues d'une plage selon critère

dav30029

XLDnaute Nouveau
Bonjour,

Je n'arrive pas à résoudre le problème décrit ci-dessous(formule et/ou vba) :
- j'ai une plage dans la colonne A avec plusieurs valeurs qui peuvent être identiques
- dans une colonne B, j'ai des données qui peuvent être différentes selon celles de la colonne A

Je voudrais que dans une autre cellule(ici colonne F), il insère toutes les valeurs issues de la colonne a pour laquelle les critères sont identiques.
dans ce cas, il ne renseigne que la première valeur trouvée en colonne B
La recherchev ne fonctionne pas

Voici ci-joint une explication plus claire

Merci pour votre aide
 

Pièces jointes

  • Classeur1.xlsx
    9.2 KB · Affichages: 6

Lolote83

XLDnaute Barbatruc
Bonjour @dav30029, @JHA

Avec ce code peut être, vu la demande

Je voudrais que dans une autre cellule(ici colonne F)

VB:
Sub Test()
    xCpt = 0                                            'Compteur = zéro
    xRecherche = [E2]                                   'Valeur à rechercher
    For Each xCell In Range("A2:A9")                    'On boucle sur l'ensemble de la base (Ici A2 à A9)
        If xCell.Value = xRecherche Then                'Si la cellule lue = recherche alors
            xCpt = xCpt + 1                             'On passe le compteur à +1
            xVal = xCell.Offset(0, 1).Value             'On récupère la donnée à droite (colonne B)
            If xCpt = 1 Then                            'Si compteur = 1
                xResult = xVal                          'Résultat = Valeur lue
            Else                                        'Else
                xResult = xResult & " / " & xVal        'Compteur >1 ; Résultat = ancien résult & " /" & Valeur lue
            End If                                      'Fin Si
        End If                                          'Fin Si
    Next xCell                                          'Fin boucle
    [F2] = xResult                                      'On affiche le résultat en cellule F2
End Sub

@JHA, je regarde ta solution.

@+ Lolote83
 

dav30029

XLDnaute Nouveau
Merci à tous les deux pour la réactivité.
L'approche vba correspond mieux à mon attente mais avec la formule matricielle, cela semble intéressant car je ne connaissais pas.

pour Lolote83,

si ma plage est plus grande(colonne A ET E), ça ne fonctionne pas si je met une boucle while/wend. qu'est ce qu'il m'échappe ?

petite précision : dans ma colonne E, j'ai fais un filtre avancé avec copie "sans doublons" de ma colonne A.

En effet, je rejoins le fichier.
Dans ma cellule F3, il doit être inscrit uniquement 45 mais tout le contenu de F2 est remis.

Merci encore
 

Pièces jointes

  • Classeur1.xlsm
    15.7 KB · Affichages: 3

Lolote83

XLDnaute Barbatruc
Re bonjour à tous,
Le fichier en retour ou au final, j'ai fait la macro (identique) mais sous forme de fonction personnalisée.
En cellule F2 écrire =Fct_Test(E2) puis tirer vers le bas
Voir fichier joint
@+ Lolote83
 

Pièces jointes

  • Copie de DAV30029 - Recherche valeurs dans colonne (fonction).xlsm
    19.4 KB · Affichages: 6

job75

XLDnaute Barbatruc
Bonjour dav30029, JHA, Lolote83,

A partir d'Excel 2016 et sur les versions suivantes il existe la fonction JOINDRE.TEXTE.

Voyez le fichier joint et cette formule matricielle en F2 :
Code:
=JOINDRE.TEXTE(", ";VRAI;REPT(B$2:B$9;A$2:A$9=E2))
à valider par Ctrl+Maj+Entrée.

PS : vous croyez vraiment que votre post #6 est la solution de cette discussion ???

A+
 

Pièces jointes

  • JOINDRE.TEXTE.xlsx
    10.8 KB · Affichages: 7

Lolote83

XLDnaute Barbatruc
Bonjour à tous,
Perso, voici la version que j'ai, mais pas de "joindre.texte"
1671002048478.png

Et voici les seules fonctions que j'ai commençant par la lettre J
1671002193572.png

Et du coup, si j'ouvre le fichier de @job75 , voici comment est traduite la fonction.
1671003556834.png

Fonction qui affiche les bonnes valeurs à l'ouverture du fichier, mais qui renvoi #NOM? si je viens à modifier une valeur dans la colonne A.
1671003687631.png


@+ Lolote83
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 842
dernier inscrit
seb0390