Bonjour,
J'ai pas tellement compris ou tu voulais en venir. Mais c'est pas grave, ci dessous une macro qui fait ce que tu veux. A coller dans un module simple, et a utiliser telle quelle.
Tu as quelques commentaires pour adapter selon tes besoins!
Yann
Sub retour_ligne()
Dim plageTableaudeBase As Range
Dim tabPlage() As Variant
Dim tabsortie() As String
Dim i As Long, j As Long
Dim lignesortie As Long, colsortie As Long
Dim conca As String
Dim TB() As String
Dim nbCell As Long
conca = ""
'A faire varier en fonction du caratere / de la chaine de caractere qui marque le retour à la ligne
Const caractereRetourLigne As String = "a"
'A faire varier selon tes besoin : Nom de feuille (ici F1) et delimitation de la plage de cellule (ici B4:M4)
Set plageTableaudeBase = ThisWorkbook.Sheets("F1").Range("B4:M4")
'=> Ne fonctionne que pour des plages horizontales
nbCell = plageTableaudeBase.Cells.Count
tabPlage = plageTableaudeBase.Value
For i = 1 To nbCell
conca = conca & tabPlage(1, i)
Next i
If InStr(conca, caractereRetourLigne) = 0 Then MsgBox "Caractere introuvable": Exit Sub
TB = Split(conca, caractereRetourLigne)
lignesortie = UBound(TB())
colsortie = 0
For i = 0 To UBound(TB())
If Len(TB(i)) + 1 > colsortie Then colsortie = Len(TB(i)) + 1
Next i
ReDim tabsortie(lignesortie, colsortie) As String
For i = 0 To lignesortie
If Len(TB(i)) > 0 Then tabsortie(i, 0) = caractereRetourLigne
For j = 1 To Len(TB(i))
tabsortie(i, j) = Mid(TB(i), j, 1)
Next j
Next i
'On colle (a adapter)
ThisWorkbook.Sheets("F1").Range(Cells(12, 2), Cells(12 + lignesortie, 2 + colsortie)).Value = tabsortie
End Sub