Je sais que cet article est très ancien, mais je n'ai rien trouvé qui permette de faire cela. J'ai donc finalement rassemblé ce qui suit à partir de tous les forums.
Cette opération supprime tous les sauts de ligne à gauche et à droite, ainsi que les lignes vierges. Il suffit ensuite de découper le tout pour qu'il ait une bonne apparence. Modifiez comme bon vous semble. J'en ai aussi fait un qui supprime tous les sauts de ligne, si cela vous intéresse. TY
Sub RemoveBlankLines()
Application.ScreenUpdating = False
Dim rngCel As Range
Dim strOldVal As String
Dim strNewVal As String
For Each rngCel In Selection
If rngCel.HasFormula = False Then
strOldVal = rngCel.Value
strNewVal = strOldVal
Debug.Print rngCel.Address
Do
If Left(strNewVal, 1) = vbLf Then strNewVal = Right(strNewVal, Len(strNewVal) - 1)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
Do
If Right(strNewVal, 1) = vbLf Then strNewVal = Left(strNewVal, Len(strNewVal) - 1)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
Do
strNewVal = Replace(strNewVal, vbLf & vbLf, "^")
strNewVal = Replace(strNewVal, Replace(String(Len(strNewVal) - _
Len(Replace(strNewVal, "^", "")), "^"), "^", "^"), "^")
strNewVal = Replace(strNewVal, "^", vbLf)
If strNewVal = strOldVal Then Exit Do
strOldVal = strNewVal
Loop
If rngCel.Value <> strNewVal Then
rngCel = strNewVal
End If
rngCel.Value = Application.Trim(rngCel.Value)
End If
Next rngCel
Application.ScreenUpdating = True
End Sub
2 votes
vbCrLf
yvbNewLine
sont en fait constitués de deux caractères, ce qui signifie qu'ils doivent être remplacés parRight$(myString, 2)
1 votes
Niraj : Chris a tout à fait raison. @Chris : +1, veuillez l'afficher comme réponse :)