Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retour a la ligne dans cellule et vba

3 réponses
Avatar
Albator V
Bonjour,
dans une cellule j'ai du texte avec un retour a la ligne. lorsque je
recupere la valeur en vba, je souhaiterai remplacer ce saut de ligne par un
espace.
merci d'avance

3 réponses

Avatar
Daniel.C
Bonjour.
Essaie :

ActiveCell = _
Application.Substitute(ActiveCell, Chr(10), " ")

Cordialement.
Daniel
"Albator V" a écrit dans le message de
news:
Bonjour,
dans une cellule j'ai du texte avec un retour a la ligne. lorsque je
recupere la valeur en vba, je souhaiterai remplacer ce saut de ligne par
un
espace.
merci d'avance


Avatar
Corto
Bonjour Albator V,
Le retour à la ligne peut être de 3 types (CHR(10), CHR(13) ou
CHR(10)&CHR(13)), il existe des valeurs prédéfinies dans VBA qu i sont
respectivement vbLf, vbCr et vbCrLf. il faut donc tester les trois
possibilités à moins que tu ne soit sûr de celui qui est u tilisé :

If InStr(ActiveCell, vbCrLf) Then
ActiveCell = Replace(ActiveCell, vbCrLf, " ")
ElseIf InStr(ActiveCell, vbCr) Then
ActiveCell = Replace(ActiveCell, vbCr, " ")
ElseIf InStr(ActiveCell, vbLf) Then
ActiveCell = Replace(ActiveCell, vbLf, " ")
End If

Corto

Bonjour,
dans une cellule j'ai du texte avec un retour a la ligne. lorsque je
recupere la valeur en vba, je souhaiterai remplacer ce saut de ligne pa r un
espace.
merci d'avance



Avatar
Albator V
merci a vous 2

juste pour info, le retour a la ligne dans une cellule par combinaison
alt+entrer correspond a chr(10) ou encore vbLf

merci encore


Bonjour Albator V,
Le retour à la ligne peut être de 3 types (CHR(10), CHR(13) ou
CHR(10)&CHR(13)), il existe des valeurs prédéfinies dans VBA qui sont
respectivement vbLf, vbCr et vbCrLf. il faut donc tester les trois
possibilités à moins que tu ne soit sûr de celui qui est utilisé :

If InStr(ActiveCell, vbCrLf) Then
ActiveCell = Replace(ActiveCell, vbCrLf, " ")
ElseIf InStr(ActiveCell, vbCr) Then
ActiveCell = Replace(ActiveCell, vbCr, " ")
ElseIf InStr(ActiveCell, vbLf) Then
ActiveCell = Replace(ActiveCell, vbLf, " ")
End If

Corto

Bonjour,
dans une cellule j'ai du texte avec un retour a la ligne. lorsque je
recupere la valeur en vba, je souhaiterai remplacer ce saut de ligne par un
espace.
merci d'avance