XL 2013 supprimer le 1er saut de ligne dans une cellule...mais uniquement celui-ci

  • Initiateur de la discussion Initiateur de la discussion CHLOE90
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CHLOE90

XLDnaute Junior
Bonsoir le Forum,

J'ai importé dans des cellules d'une feuille excel tout un tas de données, certaines d'entre elles commencent par un retour chariot vide (Chr10 ou Chr13...je fais pas bien la différence) que je voudrais enlever.
J'ai bien trouvé une macro qui supprime les sauts de lignes....ça supprime bien le retour chariot de la première ligne, mais ça supprime les autres sauts de lignes dans la cellule que je souhaitais conserver.

L'un d'entre vous aurait-il une idée à me soumettre SVP ?

Merci d'avance
Chloé
 
Bonsoir à tous,

J'aurais fait comme cela (supprime tous les sauts de ligne en tête du contenu de la cellule):
VB:
Sub Test()
Dim x, i&
  x = Range("a1").Value
  For i = 1 To Len(x)
    If Mid(x, i, 1) <> Chr(10) Then Exit For
  Next i
  Range("a1") = Mid(x, i)
End Sub
 
Bonjour,
Sans VBA (si il s'agit d'un One shot de récupération de données) :
En supposant que la cellule A1 contienne du texte commençant ou pas par un CHR(10) ou CHR(13),
formule à mettre en B1 pour supprimer le premier caractère si besoin :
=SI(OU(GAUCHE(A1;1)=CAR(10);GAUCHE(A1;1)=CAR(10));DROITE(A1;NBCAR(A1)-1);A1)

En français : si le premier caractère est Chr10 OU Chr13, je reprends la chaîne de caractère en partant de la droite moins - 1 caractère.

finir par un copier/collage spécial pour ne garder que le résultat.

Cdlt
Laurent
 
Petit complément d'information MaPomme Stp, comment adapter ton bout de code (qui marche très bien sur la cellue A1) aux cellules de la plage "B5:B5621"
D'avance merci pour ta patience, j'ai essayé d'adapter un "For Each cell In myRange"...mais excel fait que de me contrarier 😡
Chloé
 
Bonjour,

Le retour chariot c'est CAR(10) ou vbLf en VBA, CAR(13) c'est vbCr.

Avec un tableau VBA la suppression est très rapide :
VB:
Sub SupVBLF()
Dim tablo, i&
With ActiveSheet 'à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[B5:B5621]
        tablo = .Formula 'matrice, plus rapide
        For i = 1 To UBound(tablo)
            If Left(tablo(i, 1), 1) = vbLf Then tablo(i, 1) = Mid(tablo(i, 1), 2)
        Next
        .Formula = tablo 'restitution
    End With
End With
End Sub
A+
 
Ah oui mais il faut comme mapomme traiter les cas où il y a plusieurs vbLf successifs en tête :
VB:
Sub SupVBLF()
Dim tablo, i&, x$, j%
With ActiveSheet 'à adapter
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .[B5:B5621]
        tablo = .Formula 'matrice, plus rapide, au moins 2 éléments
        For i = 1 To UBound(tablo)
            x = tablo(i, 1)
            For j = 1 To Len(x)
                If Mid(x, j, 1) <> vbLf Then Exit For
            Next j
            tablo(i, 1) = Mid(x, j)
        Next i
        .Formula = tablo 'restitution
    End With
End With
End Sub
 
re
celle supprime les premier saut de lignes du début du texte de la cellule A1
tout les autres elle les garde
VB:
Sub test()
    Dim ok As Boolean,i&,t$
    t = [A1].Text: x = Split(t, Chr(10)): t = ""
    Do While i < UBound(x) + 1
        If x(i) <> "" Then ok = True
        If ok = True Then t = t & x(i) & IIf(i <> UBound(x), Chr(10), "")
        i = i + 1
    Loop
    MsgBox t
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
582
Retour