Fonction SPLIT

Résolu
Nico -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai n cellules dans une colonne. Les n cellules contiennent de 1 à n lignes.
Je souhaite dissocier ces lignes dans une autre colonne.

La macro fonctionne si je définie une cellule (ex. B1). En revanche pour une plage, j'ai toujours une erreur.

Ci-dessous la macro en question :

Sub decoupe2()
Dim s As Variant, i As Byte
s = Split(Range("B" & Rows.Count), Chr(10))
For i = 0 To UBound(s)
    Cells(i + 1, 3).Value = s(i)
Next i
End Sub


Merci de votre aide !

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Avec restitution à partir de la colonne C :
    Dim DL As Long, Lig As Long, Col As Integer, s As Variant, i As Byte
    DL = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row 
    Col = 3
    For Lig = 1 To DL
        If Instr(Range("B" & Lig), Chr(10)) > 0 Then
            s = Split(Range("B" & Lig), Chr(10))
            For i = 0 To UBound(s)
                Cells(i + 1, Col).Value = s(i)
            Next i
            Col = Col + 1
        End If
    Next Lig


    Code non testé, écrit "à l'arrache"...
    0
    1. Nico
       
      Merci pour ta réponse pijaku, la macro fonctionne parfaitement !
      Est-il possible de mettre le contenu des lignes l'une à la suite des autres et non en changeant de colonne ?
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Nico
         
        Oui.
        Regarde la solution de Thev (salutations au passage).
        0