Compiler le contenu de plusieurs cellules

  • Initiateur de la discussion Initiateur de la discussion Ludion62
  • 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 !

Ludion62

XLDnaute Nouveau
Bonjour,

Je souhaiterais compiler le contenu de plusieurs cellules dans une seule cellule en y ajoutant une virgule entre chaque valeur.

Par exemple j'ai :
A1 : 158
A2 : 163
A3 : 188

Je souhaiterais avoir en B1 la compilation suivante : 158,163,188

En sachant que le nombre de cellules est beaucoup plus important et aléatoire.

Merci de vos réponses.

Ludion62
 
Re : Compiler le contenu de plusieurs cellules

bonjour,
en B1, par exemple :
Code:
=compile(A1:A3)

avec cette fonction personnalisée:
VB:
Function compile(cc As Range) As String
Application.Volatile
Dim c As Range
For Each c In cc
    If c <> "" Then compile = compile & CStr(c) & ","
Next c
compile = Mid(compile, 1, Len(compile) - 1)
End Function

ce qui permet de gérer des plages importantes, facilement
 
Re : Compiler le contenu de plusieurs cellules

Bonjour à tous

une autre solution,

Code:
Range("B1").Value = Join(Application.Transpose(Range("A1", Range("A65536").End(xlUp)).Value), ";")

A noter qu'il est préférable d'avor le ; comme séparateur si les cellules sont renseignées par des nombres..

bon après midi
@+
 
Re : Compiler le contenu de plusieurs cellules

Bonjour à tous,

Puisque je l'avais écrite sous forme de fonction:

Code:
Function Compile(Plage As Range, Optional strSep As String = ",")
    'Si la plage à plus de ligne que de colonne
    'traiter que la première colonne
    If Plage.Rows.Count > Plage.Columns.Count Then
        Compile = Join(Application.Transpose(Plage.Columns(1)), strSep)
    Else
    'sionon traiter la première ligne
        Compile = Join(Application.Transpose(Application.Transpose(Plage.Rows(1))), strSep)
    End If
End Function

Utilisation dans une cellule:

= Compile (A1:A3)
Ou
= Compile (A1:A3, ";") 'pour changer le séprateur

Ou

= Complie ( A1:C1) ' en ligne
ou
= Compile ( A1:C1,";")

A+ à tous
 
Re : Compiler le contenu de plusieurs cellules

Merci Pierrot93, ça fonctionne parfaitement.
Merci également à tous de vous être penché sur mon problème.

A bientôt.

Bonjour à tous

une autre solution,

Code:
Range("B1").Value = Join(Application.Transpose(Range("A1", Range("A65536").End(xlUp)).Value), ";")

A noter qu'il est préférable d'avor le ; comme séparateur si les cellules sont renseignées par des nombres..

bon après midi
@+
 
- 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

Discussions similaires

Retour