user_mobilelogo

Ce n'est pas si simple car il faut remplacer la marque de paragraphe par une espace sous peine de voir des mots collés lors du regroupement des lignes. Cette opération risque à son tour de placer des espaces en trop (surtout dans les textes ascii).

Voici une macro qui fait environ 98% du travail. Elle est perfectible bien entendu. Lors d'une première passe elle remplace par une espace tous les retours chariot non précédés d'un point, d'un ! ? : ou d'un autre retour chariot.

Dans une deuxième passe elle réduit toute suite d'au moins deux espaces à une seule.

Sub ReformateTexteBrut()
'On Error Resume Next
'macro écrite par anacoluthe
' Supprime les sauts de ligne - paragraphes d'un texte brut
' 1° Remplace les sauts de ligne superflus par des espaces
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([!\?.\!:^13])(^13)"
.Replacement.Text = "\1 "
.Forward = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
' 2° Elimine tous les espaces en double
Selection.HomeKey Unit:=wdStory
.Text = " {2;}"
.Replacement.Text = " "
.Execute Replace:=wdReplaceAll
End With
End Sub


 

 

Statistiques

Aujourd'hui653
Hier1981
Cette semaine10130
Ce mois40362
Total depuis 200418242902

8
visiteurs actuellement en ligne

27 avril 2024