Résumé
str = Replace(str, vbLf, "")
Ce code supprime tous les sauts de ligne du code.
Si vous voulez juste supprimer le dernier :
If Right(str, 1) = vbLf Then str = Left(str, Len(str) - 1)
c’est la méthode que vous avez essayée, et c’est correct.
Informations de contexte
saut de ligne = ASCII 10, saut de page = ASCII 12 et retour chariot = ASCII 13. Ici, nous voyons clairement ce que nous savons tous : le PC vient de la machine à écrire (électrique).
vbLf est Chr (10) et signifie que le curseur descend d’une ligne (machine à écrire : tourner le rouleau)
vbCr est Chr (13) et signifie que le curseur saute au début (machine à écrire : ramener le rouleau)
Sous DOS, un saut de ligne est toujours VBCrLf ou Chr (13) & Chr (10), dans les fichiers en tout cas, mais par exemple aussi dans les zones de texte en VB.
Dans une cellule Excel, en revanche, un saut de ligne n’est que VBLf, la deuxième ligne commence alors à la première position même sans vbCr. Avec vbCrLf, on descend alors d’une cellule.
Donc cela dépend de l’endroit où vous lisez et d’où vous obtenez votre chaîne.
Si vous voulez supprimer tous les vbLf (Chr(10)) et vbCr (Char(13)) dans votre chaîne, vous pouvez le faire comme ceci :
strText = Replace(Replace(strText, Chr(10), ""), Chr(13), "")
Si vous voulez seulement supprimer le dernier, vous pouvez tester et le faire comme ceci :
If Right(str, 1) = vbLf or Right(str, 1) = vbCr Then str = Left(str, Len(str) - 1)