XL pour MAC Scinder le contenu d'un cellule en plusieurs lignes

Viniasco

XLDnaute Junior
Bonjour

Mon tableur est constitué de 2 colonnes :
Colonne AColonne B
111111102/12/16 : kdgfkjhgqsdfjhg
05/12/16 : lqhlfkdj qljdhf lqhdf lqshdlfl
222222201/05/14 : KJHLSDKJFGLK
05/01/16 : liouqyer zpeiru azêoiur^
05/01/17 : ,nbxwvc; wxnc;n lkjhsdf jhlkjjhhu

Je souhaiterai arriver à ce résultat :
Colonne AColonne B
111111102/12/16 : kdgfkjhgqsdfjhg
111111105/12/16 : lqhlfkdj qljdhf lqhdf lqshdlfl
222222201/05/14 : KJHLSDKJFGLK
222222205/01/16 : liouqyer zpeiru azêoiur^
222222205/01/17 : ,nbxwvc; wxnc;n lkjhsdf jhlkjjhhu

J'ai vu dans des sujets anciens des macros, mais je n'y connais rien.
Je précise au cas où ça aiderait, que chaque ligne de la colonne B, sauf la dernière, se termine par un saut de ligne.

Une idée ?
Merci
 

job75

XLDnaute Barbatruc
Bonsoir Viniasco,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Activate()
Dim tablo, a$, nlig&, resu(), i, x, s, j%, n&
With Feuil1.[A1].CurrentRegion 'à adapter
    tablo = .Resize(, 2) 'matrice, plus rapide
    a = .Columns(2).Address(External:=True)
End With
nlig = Evaluate("SUM(LEN(" & a & ")-LEN(SUBSTITUTE(" & a & ",CHAR(10),""""))+1)")
ReDim resu(1 To nlig, 1 To 2)
For i = 1 To UBound(tablo)
    x = tablo(i, 1)
    s = Split(tablo(i, 2), vbLf)
    If UBound(s) = -1 Then
        If x <> "" Then n = n + 1: resu(n, 1) = x
    Else
        For j = 0 To UBound(s)
            n = n + 1
            resu(n, 1) = x
            resu(n, 2) = s(j)
        Next j
    End If
Next i
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A1] 'à adapter
    If n Then .Resize(n, 2) = resu
    .Offset(n).Resize(Rows.Count - n - .Row + 1, 2).ClearContents 'RAZ en dessous
End With
Columns.AutoFit 'ajustement largeur
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub
Bonne nuit.
 

Pièces jointes

  • Scinder(1).xlsm
    23 KB · Affichages: 12

Discussions similaires

Statistiques des forums

Discussions
312 270
Messages
2 086 684
Membres
103 370
dernier inscrit
pasval