Macro writer comment modifier l'interligne

Bonjour,
Je n’arrive pas à trouver la propriété qui permet de modifier par macro l’interligne d’un stylede paragraphe.
J’avais trouvé “ParalineSpacing” mais soit ce n’est pas le bon, soit je ne le manipule pas correctement.
Si quelqu’un connaît ?
Merci d’avance.
Claude

Bonjour prog.amateur,

Essayez avec : .uno:LineSpacing

Accessible par la configuration avancée

:wink:

Merci, mais les commandes .uno dans un module basic ne fonctionnent pas “propriiété ou méthode non trouvé”
Claude

Bonjour,
l’enregistreur de macro me propose ceci

dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "LineSpacing.Mode"
args1(0).Value = 1
args1(1).Name = "LineSpacing.Height"
args1(1).Value = 1500

dispatcher.executeDispatch(document, ".uno:LineSpacing", "", 0, args1())

Value = 1500 correspond à 1,5 cm. J’ai modifié cette valeur dans le code de la macro et obtenu les changements adéquats.

1 Like

Merci, je vais rechercher, peut-être que je n’utilse pas le bon service car il ne reconnaît pas LineSpacing.
Claude

Bonsoir,
@njhub : la copie d’écran montre l’interligne des menus de l’interface…pas du document
Il faut aller voir les propriétés des styles. Pour ça, xray est votre ami.
Ou bien l’Outil de développement de Libreoffice :

On y voit que la propriété est ParaLineSpacing et une structure de la forme com.sun.star.style.LineSpacing
Il faut donc récupérer un style du document (Standard, pour l’exemple) et modifier la propriété avec une structure convenable :

	oDocSource = ThisComponent
	oFamilies = oDocSource.StyleFamilies
	oStyles = oFamilies.getByName("ParagraphStyles")
	oStyle = oStyles.getByName("Standard")
	
	Dim oEspacement as new com.sun.star.style.LineSpacing
	oEspacement.Height = 200 ' c'est gros, et ça se voit !!
	oEspacement.Mode = 0
	
	oStyle.ParaLineSpacing = oEspacement

En cadeau un document permettant de modifier et rétablir l’interligne avec deux boutons.
Interligne.odt (43,4 Ko)
Cordialement,
JM
PS : Je ne sais pas à quoi correspond le mode.

Merci, merci.
J’avais mal déclaré ton oespacement j’en avais fait une instance et non un objet.
En travaillant en pas à pas je voyais bien les valeurs mais il ne faisait pas la mise à jour.

Le mode, après bien des tests correspond au type d’interligne.
Quand on choisit “au moins” il est à 1
Quand on choisit “interligne”, il est à 2
Quand on choisit “fixe” il est à 3
Dans les autres cas il reste à 0

Bonne journée
Claude