Detecter passage à la ligne dans des string

Bonjour j'ai un string S qui est du type

"aaa

bbb

ccc

..."

Avec un nombre indéfini de lignes à l'avance

Ce que je fais actuellement c'est:

Cells(1,1) = S

Mais j'aimerais que chaque ligne du string s'écrive sur une cellule excel, du genre

Cells(1,1) = 1ere ligne de S = "aaa"

Cells(1,2) = 2eme ligne de S = "bbb"

Savez-vous comment faire cela?

Il faut dans un premier temps détécter les retours à la ligne...avec vbCrLf??

Merci des retours,

Bonjour

Essaie ce code :

Sub ess()
    s = Cells(1, 1)
    v = Split(s, Chr(10))(1)
    i = 0
    While Split(s, Chr(10))(i) <> ""
        Cells(1, i + 2) = Split(s, Chr(10))(i)
        i = i + 1
    Wend
End Sub

Et dis-moi s'il te convient.

Bye !

Merci du retour

C'est un début, il m'affiche bien seulement la 1ere ligne sur la 1ere celule.

Mais il s'arrête la. Quand j'imprime i, il m'indique qu'il est égal à 0. En fait il rentre pas dans le while...

Nouvelle version.

Marche-t-elle mieux ?

138fabdu92-v1.xlsm (20.14 Ko)

Bonjour,

ou bien sans boucle :

Sub decoupe()
    Dim a
    a = Split([A1], vbLf)
    [A1].Resize(, UBound(a) + 1) = a
End Sub

eric

@gmz. En fait quand je lance ta macro ça marche, mais pas en incorporant dans mon programme. Pourquoi? Parce que en fait, j'ai simplifié les données pour que ce soit plus facile à comprendre mais le string peut être de cette forme:

"aaaa

bb b b

ccc

d"

Au fait il peut y avoir des blancs un peu dans tous les sens. Ca simplifie pas le problème

Sinon

@ eriiic, je comprend pas ton programme. Comment je l'utise: je remplace [A1] par S (mon string)

et après je fais Cells[i,1] = a(i)???

Ben tu le lances sans rien y changer.

J'avais cru comprendre que tu voulais écraser ta chaine en A1.

Si tu préféres la garder et commencer en B1 tu remplaces par [B1].Resize(, UBound(a) + 1) = a

eric

Rechercher des sujets similaires à "detecter passage ligne string"