Concatener une matrice dans une seule cellule

wg99oe

XLDnaute Nouveau
Bonjour. Je vous explique mon besoin.

Il consiste à concaténer le contenu d'une matrice (provenant d'une formule matricielle qui peut retourner plusieurs valeurs) dans une seule cellule et dont les éléments sont séparés par des ", ou . etc."

J'ai prix connaissance du fichier "ConcatenerMjx.zip" qui répond à une partie de mon besoin, mais qui limite le nombre de résultats.

Merci à l'avance de votre aide
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Concatener une matrice dans une seule cellule

Bonjour wg, et bienvenue sur le forum

si tu veux avoir des réponses il serait nécessaire de mettre un fichier représentatif de ton problème ( avec explications un peu plus précises) en pièce jointe

à+
Philippe
 

Tibo

XLDnaute Barbatruc
Re : Concatener une matrice dans une seule cellule

Bonjour,

La solution pourrait peut-être passer par l'installation de la macro complémentaire Morefunc de Laurent Longre, téléchargeable ici par exemple :

Tlcharger Morefunc sur 01net Telecharger.com

On y trouve une fonction appelée MCONCAT

La formule, matricielle, pourrait être :

=MCONCAT(SI($B$2:$B$6=$A8;$A$2:$A$6))

Matricielle, donc à valider par CTRL + MAJ + ENTREE

Pas testé, donc donné sans garantie...

et reste le problème des : à insérer entre chaque lettre

@+
 

job75

XLDnaute Barbatruc
Re : Concatener une matrice dans une seule cellule

Bonjour le fil,

Cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A8:A9]) Is Nothing Or Target.Count > 1 Then Exit Sub
Dim cel As Range, txt As String
For Each cel In [B2:B6]
  If cel = Target Then txt = txt & IIf(txt = "", "", ":") & cel.Offset(, -1)
Next
Target.Offset(, 1) = txt
End Sub

Bien adapter les 2 plages entre crochets.

A+
 

job75

XLDnaute Barbatruc
Re : Concatener une matrice dans une seule cellule

Re,

Avec cette solution, les plages de travail sont déterminées automatiquement :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column > 1 Or Target.Validation.InCellDropdown = False Then Exit Sub 's'il n'y a pas de liste de validation
Dim cel As Range, txt As String
For Each cel In Range([B2], [B2].End(xlDown))
  If cel = Target Then txt = txt & IIf(txt = "", "", ":") & cel.Offset(, -1)
Next
Target.Offset(, 1) = txt
End Sub

Fichier joint.

A+
 

Pièces jointes

  • Liste Filtrée(1).xls
    38 KB · Affichages: 127

Tibo

XLDnaute Barbatruc
Re : Concatener une matrice dans une seule cellule

Bonjour,

S'il y a très peu d'éléments dans ta matrice, c'est possible par formule, c'est ce que tu avais commencé à faire.

Sinon, s'il peut y avoir beaucoup d'éléments, une solution avec colonnes intermédiaires (voir le fichier joint)

@+
 

Pièces jointes

  • wg99oe.zip
    4.9 KB · Affichages: 203

Discussions similaires

Statistiques des forums

Discussions
312 615
Messages
2 090 243
Membres
104 464
dernier inscrit
alzerco