Writer

Auteur : Bernard Marcelly.

Quand on recopie certains documents dans Writer, on obtient parfois de nombreux paragraphes intempestifs; en particulier sur certains textes non formatés, ou qui ont subi un découpage destiné à un envoi par mail.

Cette macro permet de supprimer tous les paragraphes dans une zone de texte sélectionnée. L’utilisateur doit sélectionner une zone de texte, et une seule.

Certains “ découpeurs ” laissent un espace à la fin de chaque ligne coupée. La macro en tient compte et s’assure que la soudure ne rajoute pas un espace inutile.

Utilisation :

Mettre la macro dans un module de la bibliothèque soffice / standard. Définir un raccourci clavier qui lance la macro dans un contexte Writer.

Ensuite, sélectionner une zone à nettoyer dans le document et appuyer sur la touche de raccourci.

REM ***** BASIC *****

Option Explicit

' Supprime les marques de paragraphe dans la zone sélectionnée

Sub Suppr_paragr_select

Dim MonDocument As Object, MonTexte As Object

Dim CurseurVisible As Object, MonCurseur As Object

MonDocument = ThisComponent

MonTexte = MonDocument.Text

CurseurVisible = MonDocument.currentcontroller.getViewCursor

rem creer un curseur de travail à la position du curseur visible

MonCurseur = MonTexte.createTextCursorByRange(CurseurVisible.getStart)

With MonCurseur

Do While .gotoNextParagraph(false)

if MonTexte.compareRegionEnds(MonCurseur, CurseurVisible)< 0 then Exit Do

.goLeft(1, true)

.setString(" ")

.goLeft(1, true)

if .getString = " " then

.setString(" ") ' supprimer l'espace en fin de ligne précédente

end if

Loop

End With

End Sub

Sophie Gautier

2002-11-21T17:36:37