Bonjour Fabien, Lapou, Pascal, JCA, Nicolas, le Forum
Vu que celà à l'air d'interresser du monde, je vous ai écrit une solution VBA pour remplacer ce que World fait tout seul... Et pas Excel semblerait-il (pour une fois que c'est pas l'inverse ! lol)
Voici pour le LineFeed (Chr(10)) qui correspond à la combinaison de Touches [ALT] + [ENTER] dans une cellule Excel
Sub KillLinefeed()
Dim TargetVbLF As Range
Dim FirstAddress As String
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
Set TargetVbLF = .Find(vbLf, LookIn:=xlValues, LookAt:=xlPart)
If Not TargetVbLF Is Nothing Then
FirstAddress = TargetVbLF.Address
Do
TargetVbLF = Application.WorksheetFunction.Substitute(TargetVbLF.Text, vbLf, Chr(32))
Set TargetVbLF = .FindNext(TargetVbLF)
On Error Resume Next 'une erreur se produira au dernier VbLF
Loop While Not TargetVbLF Is Nothing And TargetVbLF.Address <> FirstAddress
End If
End With
Application.ScreenUpdating = True
End Sub
Et au cas où pour le vrai "Carriage Return" (Chr(13)) :
Sub KillCarriageReturn()
Dim TargetVbCr As Range
Dim FirstAddress As String
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
Set TargetVbCr = .Find(vbCr, LookIn:=xlValues, LookAt:=xlPart)
If Not TargetVbCr Is Nothing Then
FirstAddress = TargetVbCr.Address
Do
TargetVbCr = Application.WorksheetFunction.Substitute(TargetVbCr.Text, vbCr, Chr(32))
Set TargetVbCr = .FindNext(TargetVbCr)
On Error Resume Next 'une erreur se produira au dernier VbCr
Loop While Not TargetVbCr Is Nothing And TargetVbCr.Address <> FirstAddress
End If
End With
Application.ScreenUpdating = True
End Sub
NB dans les exemple je remplace le Caractère Indésirable par un Espace (Chr(32)) vous pouvez le changer par ce que vous souhaitez...
Bon Appétit
@+Thierry