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'hui1422
Hier2054
Cette semaine3476
Ce mois51565
Total depuis 200417608408

24
visiteurs actuellement en ligne

28 novembre 2023