Rechercher les paragraphes de listes non ordonnées

Bonjour, encore moi. :grin:

Dans un gros document, j’ai plusieurs “groupes” de paragraphes avec des puces (listes non ordonnées, donc) qui ont le même style que le corps de texte. Je voudrais leur définir un nouveau style afin de changer les interlignes. Comment fait-on une recherche en spécifiant les listes non ordonnées ?

Merci.

Quelle est la valeur du retrait de la première ligne ? La valeur par défaut de 1,27 cm n’est pas trouvée.
Pouvez-vous partager un fichier de deux paragraphes pour tester ? Un paragraphe avec des puces et un sans. Merci.

en:
How much is the first line indent? The default 1.27 cm is not found.
Can you share a two paragraph file to test? One paragraph with bullets and one without. Thanks.

Je n’avais pas pensé à faire une recherche avec critère de retrait. J’ai défini 1 cm.

test_primus.odt (43,4 Ko)

Pas 1 cm.
imagen

imagen

imagen

J’ai commis une erreur dans mon fichier joint. Tous les paragraphes de corps de texte sont du style standard dans mon document, y compris ceux qui sont définis comme listes ordonnées. Et donc avant de changer leur style en list, je dois d’abord pouvoir les sélectionner ; mais je ne sais pas sur quel critère.

Donc,

une partie réduite de votre document ?

Même fichier que le précédent mais corrigé. Tous les paragraphes sont en style standard et je voudrais savoir comment sélectionner lors d’une recherche uniquement ceux qui sont en liste non ordonnée afin de les faire passer en style list.

test_primus2.odt (43,8 Ko)

1 Like

Bonjour,

Peut-être que l’extension AltSearch fera l’affaire.

Essayez : la propriété style de Liste ou [:::NumberingStyleName=::]
(case Expressions régulières cochée).

AltSearch_liste

Ça sélectionne bien les listes à puces mais également toutes les lignes de titres… :expressionless:

Bonjour,

J’en étais conscient.

Pour autant que je puisse voir, le texte de votre fichier d’exemple test_primus2.odt ne contient aucun titre.

S’il ne s’agit que des titres, vous pourriez temporairement passer à un style différent (non couvert par [:::NumberingStyleName=::]), résoudre le problème de liste, puis rétablir le style d’origine.

pour détailler toutes les conditions …

Sub changeStandardListStyle
  oPE= ThisComponent.Text.createEnumeration
  While oPE.hasMoreElements()
     oPar = oPE.nextElement()
     if oPar.ListId <> ""  AND  oPar.ListLabelString = ""  AND oPar.ParaStyleName = "standard"   then 
      oPar.ParaStyleName = "list"
    end if
  Wend  
End Sub 
1 Like

Comme bien souvent la solution passe par une macro. Merci. :slightly_smiling_face:

Une solution plus complète consiste à supprimer le format de liste directe et à associer le style de paragraphe (à utiliser dans les listes) à un style de liste.

Une petite modification de la macro de @fpy fait l’affaire.

Sub changeStandardListStyle
  oPE= ThisComponent.Text.createEnumeration
  While oPE.hasMoreElements()
     oPar = oPE.nextElement()
     if oPar.ListId <> ""  AND  oPar.ListLabelString = ""  AND oPar.ParaStyleName = F_N2DN("standard")   then 
   REM Clean direct format   
     oPar.NumberingStyleName = ""
  REM Apply the style
    oPar.ParaStyleName = F_N2DN("list")
    end if
  Wend  
End Sub
  • Pour éviter les erreurs (avec les styles inclus avec LibreOffice) dans les versions localisées de LibreOffice, il est nécessaire d’utiliser la propriété DisplayName des styles, ce qui est obtenu grâce à une fonction simple (F_N2DN).
Function F_N2DN (estilo as String)
 Dim Par
   Par = ThisComponent.StyleFamilies.ParagraphStyles
   If Par.hasbyname(estilo) Then
     F_N2DN = Par.getbyName(estilo).DisplayName
   End If
End Function

Merci pour ces précisions. Je vais regarder tout ça attentivement.