Fusionner du texte de 3 cellules dans 1 cellule

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 !

jeromegmc

XLDnaute Occasionnel
Salut à tous,

Prenons tout d'abord un exemple simple et on généralisera après:

J'ai 3 cellules avec du texte dans chaque cellule.
Je souhaite que le texte de ces 3 cellules se retrouve dans une cellule de 3 lignes (avec l'option 'alt + enter' sous excel ou encore chr(10) en VBA)

J'obtiens un code de ce type:

Code:
Range('A1') = Range('B1') + Chr(10) + Range('B2') + Chr(10) + Range('B3')

Je souhaite généraliser l'exemple ci-dessus comme suit: Pour x cellules avec du texte, je souhaite obtenir une fusion de ce texte dans une cellule de x ligne.

Mon problème est de stocker le texte de chaque cellule et d'aller le coller dans une cellule à la suite en allant à la ligne à chaque fois.

Cela sachant que je sélectionne ma plage de cellule avec une input box comme suit:

Code:
Set mycells = Application.InputBox(prompt:='Sélectionnez la plage de cellules.', _
Title:='Plage de cellules', Left:=500, Top:=300, Type:=8)


Quelqu'un a une solution?


A+

Message édité par: jeromegmc, à: 02/09/2005 15:40
 
Bonjour jérome, le forum

Pas sur d'avoir tout compris, mais je tente ma chance :

ce code concatene dans la colonne A, à hauteur de la première ligne de la sélection, les éléments de la sélection.

Sub Bouton1_QuandClic()
Dim mycells As Range
Dim i As Integer, j As Integer


Set mycells = Application.InputBox(prompt:='Sélectionnez la plage de cellules.', _
Title:='Plage de cellules', Left:=500, Top:=300, Type:=8)

j = mycells(1).Row
'ici on récupère le numéro de la premiere ligne de la plage

For i = 1 To mycells.Count Step 3 'on boucle sur les éléments de la plage de 3 en 3
   
'on concatène les 3 éléments
    Range('a' & j) = mycells(i) & Chr(10) & mycells(i + 1) & Chr(10) & mycells(i + 2)
    j = j + 1
Next i

End Sub


salut
 
Bonjour jeromegmc,

Si j'ai bien compris le problème, je te propose le code ci-dessous :

Sub Traitement()
Dim mycells As Range
Dim Chaine() As String
Dim
L As Long

      On Error GoTo Erreur
      Set mycells = Application.InputBox(prompt:='Sélectionnez la plage de cellules.', _
                  Title:='Plage de cellules', Left:=500, Top:=300, Type:=8)
      On Error GoTo 0
      ReDim Chaine(mycells.Count)
      For L = 1 To mycells.Count
            Chaine(L) = mycells.Cells(L)
      Next L
      Range('A1') = Join(Chaine, vbLf)
     
Exit Sub
Erreur:
      MsgBox 'Traitement abandonné'
End Sub
Cordialement,

EDITION
Oups, pardon Hervé, je ne t'ai pas vu arriver...

Message édité par: myDearFriend!, à: 02/09/2005 16:10
 
- 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

Réponses
10
Affichages
455
Réponses
1
Affichages
165
Réponses
2
Affichages
292
Réponses
5
Affichages
406
Réponses
8
Affichages
312
Retour