XL 2016 Afficher dans une cellule une liste de plusieurs cellules

Michelll38

XLDnaute Nouveau
Bonjour a tous :),

Je viens vers vous aujourd'hui pour un probléme un peu particulier, que j'ai un peu de mal a exprimer clairement en une phrase, d’où ma bredouillade sur Google qui m'a emmené ici :D

Je vais essayer d’expliquer au plus clair avec l'aide d'un exemple.

Dans mon travail je dois numéroter des lots de planches de bois ou autre produits manufacturés que j'identifie sur un fichier excel. Il me faudrait un moyen de renvoyer dans une seule cellule, une liste de cellules, séparés par une virgule ou autre, ayant un même code situé dans une autre colonne. Je sait c'est pas super clair mais voila une image:
1028015
Comme vous le voyez il y a trois colonnes. Dans la colonne A "identifiants" il y a peut y avoir certaines lignes qui partagent la même valeur. Par contre dans la colonne B "code" les valeurs sont différentes.
Dans la colonne D "résume" il y a ce que je souhaiterais, c'est a dire les valeurs de la ligne "Code" qui partagent le même "Identifiant". J'ai ici rentré manuellement ce qu'il faudrait, mais il me faudrait une formule ou autre car je travaille avec des bases de données.

J'ai tenté avec la fonction recherche et d'autres mais je n'arrive pas a afficher plus d'une valeur.

J'ai conscience qu'il y a des moyens différents de résoudre ceci mais il me le faudrait vraiment dans une seule cellule a des fins de post traitement.


J’espère que j'ai été clair et que je ne vous ai pas trop embrouillé :p
Ça serait super si je pouvais avoir une solution et je remercie d'avance ceux qui pourront m'aider.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Je te propose d'utiliser la fonction joindre.texte() à valider en matricielle (appuyer sur les touches Ctrl+Maj+Entrée en même temps, les accolades se mettront de chaque côté de la formule).
VB:
=JOINDRE.TEXTE(",";VRAI;SI($A$2:$A$10=$A2;$B$2:$B$10;""))

JHA
 

Pièces jointes

  • Joindre texte.xlsx
    130.2 KB · Affichages: 8

Michelll38

XLDnaute Nouveau
Ahhhhhhh
Je ne connaissait pas cette formule joindre.texte :D
Du coup ça marche bien :)

Merci beaucoup JHA pour cette réponse rapide, et en pleine nuit, je ne pensait pas ce matin a l'avoir aussi vite :D
Ca va vraiment m’être pratique.
Encore merci.

Bonne journée a toi :)
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Une bonne âme du forum m'a fait cette fonction personnalisée à mettre dans un module.
VB:
Function TEXTJOIN(Delimiter As String, IgnoreEmpty As Boolean, ParamArray Parm() As Variant)
Dim E, C As Range, V, t() As String, N&
For Each E In Parm
  If TypeName(E) = "Range" Then
     For Each C In E.Cells
        V = C.Value: GoSub 1
        Next C
     ElseIf IsArray(E) Then
        For Each V In E: GoSub 1: Next V
     Else
        V = E: GoSub 1
        End If: Next E
TEXTJOIN = Join(t, Delimiter)
Exit Function
1: If V = "" And IgnoreEmpty Then Return
N = N + 1
ReDim Preserve t(1 To N): t(N) = V
Return
End Function

Avec cette formule:
Code:
=Textjoin(",";VRAI;SI($A$2:$A$10=$A2;$B$2:$B$10;""))
 

Pièces jointes

  • Joindre texte rev1.xlsm
    136.4 KB · Affichages: 6

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof