Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenOffice & LibreOffice Discussion :

Attribuer une couleur à un onglet avec une macro


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre à l'essai
    Attribuer une couleur à un onglet avec une macro
    Bonjour à toutes et à tous,
    Je suis nouveau sur le forum et je vais m'efforcer de respecter les règles.
    Je travaille en environnement Windows 7 Pro, Windows 10 Pro et MacOs High Sierra.
    J'utilise les versions LibreOffice 5.3.7.2 (x64) jusqu'à la toute dernière.
    J'ai créé diverses macros afin d'interagir sur un classeur. Jusque là, je n'ai pas rencontré de grosses difficultés grâce aux solutions que j'ai trouvé sur les forums de developpez.net. Un grand merci à toutes et à tous.

    Toutefois, il y a une action que je n'arrive pas à automatiser !
    Il s'agit d'attribuer une couleur à un onglet. Je précise que cette onglet est la feuille active au moment où je souhaite réaliser cette opération.
    J'ai utilisé l'enregistreur de macro afin d'avoir une ébauche de code que je souhaitais adapter ensuite mais le résultat n'est pas satisfaisant. L'onglet reste avec sa couleur par défaut.
    Ci-dessous le code... que je ne comprend pas bien je l'avoue !

    Si vous avez une explication, une solution à me soumettre, je suis bien entendu preneur.
    Par avance, un grand merci à toutes celles et ceux qui pourront me faire avancer.

    Fanolito.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    sub MiseEnFormeOnglet
     
    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(0) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "Nr"
    args1(0).Value = 37
     
    dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
     
    rem ----------------------------------------------------------------------
    dim args2(0) as new com.sun.star.beans.PropertyValue
    args2(0).Name = "TabBgColor"
    args2(0).Value = -1
     
    dispatcher.executeDispatch(document, ".uno:SetTabBgColor", "", 0, args2())
     
    end sub

  2. #2
    Membre habitué
    Bonjour,
    Tout simplement comme cela.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Main
    Dim oFeuille As Object 
    'Je désigne la feuille active
    oFeuille = ThisComponent.getCurrentController().getActiveSheet()
    'Et je lui donne la couleur de l'onglet.
    oFeuille.TAbColor = RGB(102, 0, 255)
    End Sub


    Cordialement
    Libre Office Version: 6.3.4.2 (x64)
    Windows 10

  3. #3
    Membre à l'essai
    Bonjour Mobydick_62,
    Un grand merci à toi.
    Effectivement, c'est tout simple.
    Encore merci.
    Bien sincèrement.

###raw>template_hook.ano_emploi###