[Résolu][Writer]Mettre en gras un paragraphe sur deux

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

[Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par jeanmi2403 »

Bonsoir,
Ce sujet est une réponse à la demande de Wouka dans la section Writer.
Wouka a écrit : 16 janv. 2023 16:17 C'est à dire ? Je suis novice...
Finalement le truc est amusant (si c'est vraiment seulement ce qu'il faut réaliser).
Un exemple de ce qu'on peut faire :
Wouka-Paragraphes.odt
J'ai créé un style "ParaGras" que la macro attribue à un paragraphe sur deux
Le bouton lance la macro. On peut également le faire avec un bouton posé sur la barre d'outils.
Bonne soirée,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmi2403 le 17 janv. 2023 12:37, modifié 2 fois.
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Bidouille »

Bonjour,

Afin que la recherche soit optimum dans la section "Macros et API", il est indispensable de publier le code.
Cela permet d'indexer ce dernier pour tous ceux recherchant sur des instructions spécifiques.

Je l'ai fait à votre place pour cette fois.

Code : Tout sélectionner

Sub Paragraphes
	oDocument = ThisComponent
	listeParagraphes = oDocument.Text.createEnumeration
	estPair = false
	Do While listeParagraphes.hasMoreElements
		unParagraphe = listeParagraphes.nextElement
		If  estPair Then
			unParagraphe.paraStyleName = "ParaGras"
		End If
		estPair = not(estPair)
	Loop		
End Sub
Wouka
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 11 nov. 2020 10:54

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Wouka »

Merci beaucoup. Le fichier s'ouvre bien, j'ai bien le bouton "vas-y", mais la macro ne se lance pas. Cependant, je suis sur LibreOffice (je ne l'avais pas précisé, désolé). Sinon, pour le code écrit par Bidouille, comme faire pour "l'insérer" moi-même dans une macro (je n'ai jamais crée de macro...) ?

Merci encore pour votre aide
Obligation de version : LibreOffice Version: 7.4.6.2 / Mac OS X Big Sur 11.2.2
Avatar de l’utilisateur
Michel JANZEF
ManitOOu
ManitOOu
Messages : 3494
Inscription : 12 janv. 2006 10:04

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Michel JANZEF »

Bonjour,
Il vous faut activer les macros : menu Outils --> Options --> LibreOffice --> Sécurité --> Sécurité des macros --> cochez Moyen.
Redémarrez libO. A l'ouverture du document il vous sera demandé si vous voulez activer les macros ce à quoi vous répondrez Activer les macros.
AOo 4.1.15 et LibO 24.2.7.2 (x64) - Windows 10 Famille 22H2 (19045.4780) 64 bits
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par jeanmi2403 »

Bonjour,
Wouka a écrit : 17 janv. 2023 12:13 Merci beaucoup. Le fichier s'ouvre bien, j'ai bien le bouton "vas-y", mais la macro ne se lance pas.
Il y a un message d'erreur ? Le bouton est il bien actif ?
En fait on ne voit pas autre chose que la mise en gras...
Je viens de modifier le fichier pour afficher un message en fin de travail, si ça peut aider.
Sinon, on peut aussi lancer la macro par Outils/Macros/Executer puis dans votre document : Standard/Module1/Paragraphes
Sinon, pour le code écrit par Bidouille, comment faire pour "l'insérer" moi-même dans une macro (je n'ai jamais crée de macro...)
Inutile, Bidouille a simplement recopié mon code, qui se trouve dans le fichier.
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Wouka
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 11 nov. 2020 10:54

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Wouka »

Merci ! Ça fonctionne :) (je n'avais pas activé les macros...)

Que dois-je faire pour reproduire ce macro sur mes documents ou sur un document vierge ? Je dois recopier le code quelque part ?

Aussi: votre macro est bien ce que je cherchais, j'ai bien besoin que ce soit un paragraphe sur deux en gras, mais depuis le premier (le vôtre commence par le texte en non-gras), est-il possible de modifier ça facilement ? Je peux aussi faire commencer le macro au troisième paragraphe aussi par exemple ?

Merci encore !
Obligation de version : LibreOffice Version: 7.4.6.2 / Mac OS X Big Sur 11.2.2
Jeff
GourOOu
GourOOu
Messages : 9806
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Jeff »

Bonjour,
Wouka a écrit : 18 janv. 2023 15:29 j'ai bien besoin que ce soit un paragraphe sur deux en gras, mais depuis le premier
Change :

Code : Tout sélectionner

estPair = false
Par :

Code : Tout sélectionner

estPair = true
A +
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par jeanmi2403 »

Bonjour,
Wouka a écrit : 18 janv. 2023 15:29 Que dois-je faire pour reproduire ce macro sur mes documents ou sur un document vierge ? Je dois recopier le code quelque part ?
Si vous ne souhaitez pas mettre le nez dans les macros et la gestion des événements, le plus simple serait de conserver un document vierge avec la macro dedans, et de le copier pour en créer de nouveaux.
j'ai bien besoin que ce soit un paragraphe sur deux en gras, mais depuis le premier (le vôtre commence par le texte en non-gras), est-il possible de modifier ça facilement ?
Il faut éditer la macro Outils/Macros/Editer les macros puis dans l'arborescence de votre document : Standard/Module1/Paragraphes et changer la valeur de EstPair comme l'a dit Jeff ci-dessus.
 Ajout : Je l'ai fait dans la dernière version. 
Si vous souhaitez mettre le doigt dans l'engrenage : un document pour Débuter avec les macros.
Je peux aussi faire commencer le macro au troisième paragraphe aussi par exemple ?
Là, c'est autre chose, il va falloir compter les paragraphes pour savoir où commencer. "par exemple, ça veut dire "où on veut" ? à la demande ?
Dans ce cas, il faut une boîte de dialogue.
Dernière version :
Wouka-Paragraphes.odt
A plus,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmi2403 le 20 janv. 2023 23:30, modifié 1 fois.
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Wouka
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 11 nov. 2020 10:54

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Wouka »

Merci à vous, c'est vraiment sympa.

J'ai essayé de "créer" une macro depuis un document vierge, donc j'ai recopié votre code dans Standard/Module1/Paragraphes, mais au moment de l'exécuter j'ai le message d'erreur suivant :

Erreur d'exécution BASIC.
Une exception s'est produite :
Type: com.sun.star.lang.IllegalArgumentException
Message:

Une idée ?
Obligation de version : LibreOffice Version: 7.4.6.2 / Mac OS X Big Sur 11.2.2
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par jeanmi2403 »

Bonsoir,
Wouka a écrit : 20 janv. 2023 17:48 Type: com.sun.star.lang.IllegalArgumentException
C'est certainement sur la ligne 12 ?

Code : Tout sélectionner

unParagraphe.paraStyleName = "ParaGras"
Car vous avez dû oublier de créer le style ParaGras ?
A plus,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Wouka
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 11 nov. 2020 10:54

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par Wouka »

En effet, "ParaGras" sort en rouge, car je n'avais pas crée le style...Mais je n'arrive pas à créer un style, lui donner un nom, c'est laborieux pour moi, c'est grisé, etc...J'essaye de partir de votre fichier de départ (merci encore), mais impossible d'enlever le bouton "vas-y" avant d'enregistrer le projet final...
Obligation de version : LibreOffice Version: 7.4.6.2 / Mac OS X Big Sur 11.2.2
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Résolu][Writer]Mettre en gras un paragraphe sur deux

Message par jeanmi2403 »

Bonjour,
Pour supprimer le bouton, Affichage/Barres d'outils/Contrôles de formulaire, puis cliquer sur l'équerre pour passer en mode conception.
Il faudra ensuite lancer la macro par un autre moyen (une icône dans la barre d'outils standard, par exemple).
Pour créer un style (je ne sais pas si votre version se présente de la même manière), Styles/Gérer les styles , puis clic droit dans la fenêtre et Nouveau.
Vous pouvez aussi me dire ce que vous souhaitez....
Saine lecture, le Chapitre 12 du Guide Writer (Travailler avec les styles).
P.S. Il faudrait aussi marquer [Résolu] le sujet précédent dans la rubrique "Traitement de textes".
A plus,