Concatener une matrice dans une seule cellule

  • Initiateur de la discussion Initiateur de la discussion wg99oe
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

W

wg99oe

Guest
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
 
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
 
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

@+
 
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+
 
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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour