[Résolu] [Calc]Assigner plusieurs macros sur un bouton

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 !
letus08
Membre lOOyal
Membre lOOyal
Messages : 29
Inscription : 20 sept. 2017 23:11

[Résolu] [Calc]Assigner plusieurs macros sur un bouton

Message par letus08 »

Bonsoir,
La modération vous a écrit: Merci de joindre les macros en question avec le fichier

J'ai un tableau dynamique qui nécessite à chaque actualisation une mise en page pour l'impression.

Chaque colonne de ce tableau a sa propre taille de caractère / gras etc... pour une meilleure lecture une fois imprimé sur papier.
J'ai donc enregistré une macro pour chaque colonne avec son bouton attitré :oops: j'ai pas trouver mieux ... pour l'instant.

L'idée serait de regrouper toutes ces macros en un seul bouton... si possible, sachant que, chaque macro doit agir sur sa colonne ... j'espère être clair.
Il y a peut être d'autres solutions ? étant novice en tableur j'ai quelques difficultés à imaginer toutes ses capacités.

Merci d'avance pour votre aide.

Code : Tout sélectionner

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

Sub Largeur
Dim Table_dynamique_Base_1 As Object
Table_dynamique_Base_1 = ThisComponent.sheets.getByName("Table_dynamique_Base_1")
Table_dynamique_Base_1.getCellRangeByName("A1").Columns.width = 3330
Table_dynamique_Base_1.getCellRangeByName("B1").Columns.width = 2830
Table_dynamique_Base_1.getCellRangeByName("C1").Columns.width = 4630
Table_dynamique_Base_1.getCellRangeByName("D1").Columns.width = 7050
Table_dynamique_Base_1.getCellRangeByName("E1").Columns.width = 1120
Table_dynamique_Base_1.getCellRangeByName("F1").Columns.width = 1390
Table_dynamique_Base_1.getCellRangeByName("G1").Columns.width = 1

end sub



sub Colonne_A
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FontHeight.Height"
args1(0).Value = 15
args1(1).Name = "FontHeight.Prop"
args1(1).Value = 100
args1(2).Name = "FontHeight.Diff"
args1(2).Value = 0

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Bold"
args2(0).Value = true

dispatcher.executeDispatch(document, ".uno:Bold", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "HorizontalAlignment"
args3(0).Value = com.sun.star.table.CellHoriJustify.CENTER

dispatcher.executeDispatch(document, ".uno:HorizontalAlignment", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "VerticalAlignment"
args4(0).Value = 2

dispatcher.executeDispatch(document, ".uno:VerticalAlignment", "", 0, args4())


end sub


sub Colonne_B
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FontHeight.Height"
args1(0).Value = 9
args1(1).Name = "FontHeight.Prop"
args1(1).Value = 100
args1(2).Name = "FontHeight.Diff"
args1(2).Value = 0

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Bold"
args2(0).Value = true

dispatcher.executeDispatch(document, ".uno:Bold", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "HorizontalAlignment"
args3(0).Value = com.sun.star.table.CellHoriJustify.CENTER

dispatcher.executeDispatch(document, ".uno:HorizontalAlignment", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "WrapText"
args4(0).Value = true

dispatcher.executeDispatch(document, ".uno:WrapText", "", 0, args4())

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "WrapText"
args5(0).Value = false

dispatcher.executeDispatch(document, ".uno:WrapText", "", 0, args5())

rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "WrapText"
args6(0).Value = true

dispatcher.executeDispatch(document, ".uno:WrapText", "", 0, args6())

rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "WrapText"
args7(0).Value = false

dispatcher.executeDispatch(document, ".uno:WrapText", "", 0, args7())

rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "WrapText"
args8(0).Value = true

dispatcher.executeDispatch(document, ".uno:WrapText", "", 0, args8())

rem ----------------------------------------------------------------------
dim args9(0) as new com.sun.star.beans.PropertyValue
args9(0).Name = "VerticalAlignment"
args9(0).Value = 2

dispatcher.executeDispatch(document, ".uno:VerticalAlignment", "", 0, args9())


end sub


sub Colonne_C_D
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FontHeight.Height"
args1(0).Value = 10
args1(1).Name = "FontHeight.Prop"
args1(1).Value = 100
args1(2).Name = "FontHeight.Diff"
args1(2).Value = 0

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "HorizontalAlignment"
args2(0).Value = com.sun.star.table.CellHoriJustify.CENTER

dispatcher.executeDispatch(document, ".uno:HorizontalAlignment", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "WrapText"
args3(0).Value = true

dispatcher.executeDispatch(document, ".uno:WrapText", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "VerticalAlignment"
args4(0).Value = 2

dispatcher.executeDispatch(document, ".uno:VerticalAlignment", "", 0, args4())


end sub


sub Colonne_E
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FontHeight.Height"
args1(0).Value = 11
args1(1).Name = "FontHeight.Prop"
args1(1).Value = 100
args1(2).Name = "FontHeight.Diff"
args1(2).Value = 0

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "HorizontalAlignment"
args2(0).Value = com.sun.star.table.CellHoriJustify.CENTER

dispatcher.executeDispatch(document, ".uno:HorizontalAlignment", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "VerticalAlignment"
args3(0).Value = 2

dispatcher.executeDispatch(document, ".uno:VerticalAlignment", "", 0, args3())


end sub


sub Colonne_F
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FontHeight.Height"
args1(0).Value = 7
args1(1).Name = "FontHeight.Prop"
args1(1).Value = 100
args1(2).Name = "FontHeight.Diff"
args1(2).Value = 0

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

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "HorizontalAlignment"
args2(0).Value = com.sun.star.table.CellHoriJustify.CENTER

dispatcher.executeDispatch(document, ".uno:HorizontalAlignment", "", 0, args2())

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "VerticalAlignment"
args3(0).Value = 2

dispatcher.executeDispatch(document, ".uno:VerticalAlignment", "", 0, args3())


end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par letus08 le 04 janv. 2019 21:59, modifié 3 fois.
Libreoffice 6.4.3.2 Ubuntu 20.04
toucan
MOOdérateur
MOOdérateur
Messages : 182
Inscription : 22 févr. 2016 23:49

Re: Assigner plusieurs macros sur un bouton

Message par toucan »

Bonsoir et bienvenue,

Image

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://user.services.openoffice.org/fr/ ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 628
Inscription : 09 août 2017 22:15

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par Jurassic Pork »

hello,
:aie: que veux-tu faire exactement ?
un bouton qui lance une macro qui agit sur toutes les colonnes ?
ou un bouton qui n'agit que sur une colonne en fonction d'une sélection : par exemple la colonne sélectionnée au moment de l'appui sur le bouton ou en fonction d'une liste de choix qui indique sur quelle colonne il faut agir ?
Ami calmant , J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
letus08
Membre lOOyal
Membre lOOyal
Messages : 29
Inscription : 20 sept. 2017 23:11

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par letus08 »

L'idée est d'avoir un bouton qui agit sur toutes les colonnes sachant quelles ont chacune leur propre macro de mise en page
Jurassic Pork a écrit :un bouton qui lance une macro qui agit sur toutes les colonnes ?
oui
Jurassic Pork a écrit :un bouton qui n'agit que sur une colonne en fonction d'une sélection
c'est déjà fait voir fichier joint
J'ai une macro par colonne que je voudrais regrouper.

Il me faudrait assigner avec un seul bouton chaque macro de chaque colonne:
- colonne A taille 15 en gras
- colonne B taille 10 en gras / centré à gauche
- colonne C taille 9
... etc...
Libreoffice 6.4.3.2 Ubuntu 20.04
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 628
Inscription : 09 août 2017 22:15

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par Jurassic Pork »

hello,
voici un début de code qui devrait faire ce que tu veux :

Code : Tout sélectionner

Sub Formatage_Table()
Dim oCalc, oSheet, oCursor
Dim oRangeA, oRangeB, oRangeC, oRangeD, oRangeE, oRangeF
Dim lastUsedRow
   oCalc = thiscomponent
   oSheet = oCalc.CurrentController.ActiveSheet
   oCursor = oSheet.createCursor : oCursor.gotoEndOfUsedArea(False)
   'on récupère la dernière ligne utilisée
   lastUsedRow = oCursor.RangeAddress.EndRow + 1
   'on crée les plages qui correspondent aux colonnes
   oRangeA = oSheet.getCellRangeByName("A4:A" & lastUsedRow )
   oRangeB = oSheet.getCellRangeByName("B4:B" & lastUsedRow )
   oRangeC = oSheet.getCellRangeByName("C4:C" & lastUsedRow )
   oRangeD = oSheet.getCellRangeByName("D4:D" & lastUsedRow )
   oRangeE = oSheet.getCellRangeByName("E4:E" & lastUsedRow )
   oRangeF = oSheet.getCellRangeByName("F4:F" & lastUsedRow )
   'on change les attributs des différentes plages
   'Colonne A
   oRangeA.CharWeight = 150  ' gras
   oRangeA.CharHeight = 15   ' taille de police
   oRangeA.VertJustify = com.sun.star.table.CellVertJustify.CENTER
   oRangeA.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
   'Colonne B
   oRangeB.CharWeight = 150  ' gras
   oRangeB.CharHeight = 10   ' taille de police
   oRangeB.VertJustify = com.sun.star.table.CellVertJustify.CENTER
   oRangeB.HoriJustify = com.sun.star.table.CellHoriJustify.LEFT ' gauche  
   ' etc ...
End Sub
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
letus08
Membre lOOyal
Membre lOOyal
Messages : 29
Inscription : 20 sept. 2017 23:11

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par letus08 »

Super !!! c'est ça .

Je regarde ça ce soir.

Merci J P :bravo:
Libreoffice 6.4.3.2 Ubuntu 20.04
letus08
Membre lOOyal
Membre lOOyal
Messages : 29
Inscription : 20 sept. 2017 23:11

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par letus08 »

Merci Jp,

C'est parfais, j'ai ajouté les largeurs de colonne.

Je n'ai pas trouvé pour colorer et mettre en gras les cellules > à 1 de la colonne E et colorer la cellule de la colonne D de la même ligne.
Je sais faire en condition (voir fichier joint) mais lorsque j'actualise ma table la condition ne s'applique plus, d'où la faire en macro sur le même bouton, mais je ne sais pas faire :(

Code : Tout sélectionner

Sub Formatage_Table()
    Dim oCalc, oSheet, oCursor
    Dim oRangeA, oRangeB, oRangeC, oRangeD, oRangeE, oRangeF
    Dim lastUsedRow
       oCalc = thiscomponent
       oSheet = oCalc.CurrentController.ActiveSheet
       oCursor = oSheet.createCursor : oCursor.gotoEndOfUsedArea(False)
       'on récupère la dernière ligne utilisée
       lastUsedRow = oCursor.RangeAddress.EndRow + 1
       'on crée les plages qui correspondent aux colonnes
       oRangeA = oSheet.getCellRangeByName("A4:A" & lastUsedRow )
       oRangeB = oSheet.getCellRangeByName("B4:B" & lastUsedRow )
       oRangeC = oSheet.getCellRangeByName("C4:C" & lastUsedRow )
       oRangeD = oSheet.getCellRangeByName("D4:D" & lastUsedRow )
       oRangeE = oSheet.getCellRangeByName("E4:E" & lastUsedRow )
       oRangeF = oSheet.getCellRangeByName("F4:F" & lastUsedRow )
       'on change les attributs des différentes plages
       'Colonne A
       oRangeA.Columns.Width = 3330
       oRangeA.CharWeight = 150  ' gras
       oRangeA.CharHeight = 15   ' taille de police
       oRangeA.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeA.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
       'Colonne B
       oRangeB.Columns.Width = 2830
       oRangeB.CharWeight = 150  ' gras
       oRangeB.CharHeight = 9  ' taille de police
       oRangeB.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeB.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
        'Colonne C
       oRangeC.Columns.Width = 4630
       oRangeC.CharHeight = 10   ' taille de police
       oRangeC.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeC.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
        'Colonne D
       oRangeD.Columns.Width = 7000 
       oRangeD.CharHeight = 10   ' taille de police
       oRangeD.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeD.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
        'Colonne E
       oRangeE.Columns.Width = 1120
       oRangeE.CharHeight = 11   ' taille de police
       oRangeE.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeE.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER 
       'Colonne F
       oRangeF.Columns.Width = 1400
       oRangeF.CharHeight = 7   ' taille de police
       oRangeF.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeF.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
       ' etc ...
    End Sub


Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 6.4.3.2 Ubuntu 20.04
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par OOotremer971 »

Bonjour,
Une solution parmi d'autres :
A la fin de ton code (entre etc et end sub) tu peux ajouter :

Code : Tout sélectionner

for x = 3 to lastUsedRow - 1
	cell_1 = oSheet.GetCellByPosition(4,x)
	cell_2 = oSheet.GetCellByPosition(3,x)
	if cell_1.Value > 1 Then
		cell_1.Cellstyle = "Ligne bleue et gras"
		cell_2.CellStyle = "LIGNE BLEUE"
	end if
next 
Dans ton formatage conditionnel tu utilises deux condition (un fois >1 et une fois >=2) et dans ton texte tu écris :
Je n'ai pas trouvé pour colorer et mettre en gras les cellules > à 1 de la colonne E et colorer la cellule de la colonne D de la même ligne.
je suis donc basé sur ce que tu as écrit.

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
letus08
Membre lOOyal
Membre lOOyal
Messages : 29
Inscription : 20 sept. 2017 23:11

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par letus08 »

Merci OOotremer971 ça fonctionne nickel.

Étant novice en tableau j’essaie de comprendre un minimum vos codes, mais là je pige pas comment tu détermines les colonnes ?

Je cherche pour finaliser ma macro à mettre les colonnes B,C et D en renvoie à la ligne car certains noms sont trop long et donc illisible à l'impression et / ou appliquer un style sur toute la table pour gérer les couleurs et épaisseurs de bordures.

J'ai trouvé des fragments de code sur le forum, mais ça ne fonctionne pas, pas simple tout ça c'est comme apprendre une autre langue :fou: :lol: :lol:
Libreoffice 6.4.3.2 Ubuntu 20.04
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 628
Inscription : 09 août 2017 22:15

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par Jurassic Pork »

hello,
pour le renvoi de texte à la ligne c'est la propriété IsTextWrapped
IsTextWrapped (Boolean)
autorise les retours à la ligne automatiques à l'intérieur de la cellule.
exemple :

Code : Tout sélectionner

oRangeC.IsTextWrapped = True
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
letus08
Membre lOOyal
Membre lOOyal
Messages : 29
Inscription : 20 sept. 2017 23:11

Re: [Calc]Assigner plusieurs macros sur un bouton

Message par letus08 »

Merci Jp
Ça fonctionne nickel ... quel gain de temps.

Code : Tout sélectionner

Sub Formatage_Table()
    Dim oCalc, oSheet, oCursor
    Dim oRangeA, oRangeB, oRangeC, oRangeD, oRangeE, oRangeF
    Dim lastUsedRow
       oCalc = thiscomponent
       oSheet = oCalc.CurrentController.ActiveSheet
       oCursor = oSheet.createCursor : oCursor.gotoEndOfUsedArea(False)
       'on récupère la dernière ligne utilisée
       lastUsedRow = oCursor.RangeAddress.EndRow + 1
       'on crée les plages qui correspondent aux colonnes
       oRangeA = oSheet.getCellRangeByName("A4:A" & lastUsedRow )
       oRangeB = oSheet.getCellRangeByName("B4:B" & lastUsedRow )
       oRangeC = oSheet.getCellRangeByName("C4:C" & lastUsedRow )
       oRangeD = oSheet.getCellRangeByName("D4:D" & lastUsedRow )
       oRangeE = oSheet.getCellRangeByName("E4:E" & lastUsedRow )
       oRangeF = oSheet.getCellRangeByName("F4:F" & lastUsedRow )
       'on change les attributs des différentes plages
       'Colonne A
       oRangeA.Columns.Width = 2650
       oRangeA.CharWeight = 150  ' gras
       oRangeA.CharHeight = 13   ' taille de police
       oRangeA.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeA.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
       'Colonne B
       oRangeB.IsTextWrapped = True
       oRangeB.Columns.Width = 2150
       oRangeB.CharWeight = 150  ' gras
       oRangeB.CharHeight = 9 ' taille de police
       oRangeB.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeB.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
        'Colonne C
       oRangeC.IsTextWrapped = True
       oRangeC.Columns.Width = 4250
       oRangeC.CharHeight = 9   ' taille de police
       oRangeC.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeC.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
        'Colonne D
       oRangeD.IsTextWrapped = True
       oRangeD.Columns.Width = 5200
       oRangeD.CharHeight = 9  ' taille de police
       oRangeD.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeD.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
        'Colonne E
       oRangeE.Columns.Width = 1150
       oRangeE.CharHeight = 11   ' taille de police
       oRangeE.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeE.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER 
       'Colonne F
       oRangeF.Columns.Width = 1400
       oRangeF.CharHeight = 7   ' taille de police
       oRangeF.VertJustify = com.sun.star.table.CellVertJustify.CENTER
       oRangeF.HoriJustify = com.sun.star.table.CellHoriJustify.CENTER
       ' etc ...
       for x = 3 to lastUsedRow - 1
   cell_1 = oSheet.GetCellByPosition(4,x)
   cell_2 = oSheet.GetCellByPosition(3,x)
   if cell_1.Value > 1 Then
      cell_1.Cellstyle = "Ligne bleue et gras"
      cell_2.CellStyle = "LIGNE BLEUE"
   end if
next 
    End Sub
Libreoffice 6.4.3.2 Ubuntu 20.04