Macro ... et couleurs de lettre

Bonjour

Je souhaite faire une macro

Question 1)
macros fréquemment utilisées est d'attribuer une macro à une
icône de barre d'outils
Outils > Personnaliser>barre d’outils formatage-→ « Diffcouleur »

J’ai rajouté « Diffcouleur » à la barre de formatage.
Mon problème c’est que je souhaite pas voir cette macro à l’ouverture d’un
autre fichier.odt ?
Faut-il faire un paramétrage dans >« événement » et que choisir « Document
créé » ?

Question 2)
Faire une macro avec des couleurs des caractères différents --> le fichier
joint :
Couleur de lettre.odt <http:// https://www.cjoint.com/c/HFedoTRr5kn>
Problème les couleurs changent ?

Bonjour Isaric,

Question 1)
macros fréquemment utilisées est d'attribuer une macro à une
icône de barre d'outils
Outils > Personnaliser>barre d’outils formatage-→ « Diffcouleur »

J’ai rajouté « Diffcouleur » à la barre de formatage.
Mon problème c’est que je souhaite pas voir cette macro à l’ouverture d’un
autre fichier.odt ?
Faut-il faire un paramétrage dans >« événement » et que choisir « Document
créé » ?

Si tu as modifé la barra d'outils "Formatage", alors il est normal que le bouton pour ta macro apparaisse toujours.

Je conseille de créer une nouvelle barre à laquelle tu ajouteras ton (unique) bouton. Si lors de la création tu choisis "document XYZ.odt" plutôt que "Writer", alors la barre n'apparaîtra que lorsque tu ouvriras le document.

Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que la liste reçoive une copie de votre réponse.

Bien cordialement,

Merci Jean-Francois Nifenecker pour ta réponse à la question n°1 qu'il l'a
résolu

pour la 2e je n'ai pas encore trouvé de solution

*Question 2)*
Faire une macro avec des couleurs des caractères différents --> le fichier
joint :
Couleur de lettre.odt <http:// https://www.cjoint.com/c/HFedoTRr5kn>
Problème les couleurs changent ?

sub DiffCouleur1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent
curseur=ThisComponent.currentcontroller.ViewCursor
' change les 10 caractères qui suivent le curseur courant par une couleur
aléatoire
  for i = 1 to 10
      curseur.goright(1,true)
      curseur.CharColor=rgb(i*24,0,0)
      curseur.CharColor=rnd()*16581375
      curseur.goleft(1,false)
      curseur.goright(1,false)
  next
end sub

Ooopps

cliqué trop vite :o)
la première manière de changer la couleur est via la fonction RGB mais ici
elle est écrasée par la ligne suivante qui fait un aléatoire sur toutes les
couleurs possibles.
A toi de choisir ce qui te convient comme ligne :wink:

Yves

Merci et bravos Yves Dutrieux.

Question 2)
Cela me dépasse un peu , mais j'ai cru comprendre que l'étendue de la
palette de couleurs est plus importante sur la deuxième macro proposé par
Yves Dutrieux?

Question 3) Ce qui m'intéresse, c'est de pouvoir lancer la macro avec
*10 couleurs fixes* de caractères
     qui se suivent
     et sans compter les espaces

Question 4)
Aussi dans le macro "automatisé", j'ai des références de couleur en nombre :
args1(0).Value = 1075202
le chiffre correspond à la valeur RVB ?

Question 3) Ce qui m'intéresse, c'est de pouvoir lancer la macro avec
*10 couleurs fixes* de caractères
     qui se suivent
     et sans compter les espaces

tu dois alors définir tes 10 codes couleurs dans un tableau et les
affecters successivement. pas bcp de modif à faire sur la macro que j'ai
fourni.

Question 4)
Aussi dans le macro "automatisé", j'ai des références de couleur en nombre :
args1(0).Value = 1075202
le chiffre correspond à la valeur RVB ?

A confirmer, mais d'après moi, cela correspond à : R V B soit (256 * 256 *
256) , possibilités de couleurs, soit: 16777216 de possibilités....

Yves

Merci Yves Dutrieux.

Pour l'utilisation d'un tableau, je n'ai pas compris.

Macro sur le fichier joint : Couleur de lettre.odt
<https://www.cjoint.com/c/HFhp365pd8n>

donne :
REM ***** BASIC *****

sub DiffCouleur12c
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent
curseur=ThisComponent.currentcontroller.ViewCursor
' change les 10 caractères qui suivent le curseur courant par une couleur
pré-définie
rem couleur premier caractère
      curseur.goright(1,true)
      curseur.CharColor=rgb(107,52,02)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(14,72,98)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(643,20,02)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(544,00,96)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(887,42,40)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(41,21,12)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(165,386,24)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(544,00,96)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(148,869,11)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(161,45,95)
      curseur.goleft(1,false)
      curseur.goright(1,false)

      curseur.goright(1,true)
      curseur.CharColor=rgb(22,36,51)
      curseur.goleft(1,false)
      curseur.goright(1,false)

rem couleur 12e et dernier caractère
      curseur.goright(1,true)
      curseur.CharColor=rgb(106,982,43)
      curseur.goleft(1,false)
      curseur.goright(1,false)

end sub

C'est pas évident de récupérer les codes de couleur utilisés par LibreOffice
pour les convertir en RVB

Bjr,

Pour le calcul des couleurs, ce sont des mathématiques (cfr mon tableau
calc).
J'ai adapté la macro pour utiliser un tableau de couleurs fixes.

Yves

@ Yves Dutrieux
Le tableau dont tu parles se trouve où ?
D'avance merci

dans la macro (son nom est mescouleurs() si j'ai bon souvenir.

Yves

Merci Yves Dutrieux, cela me dépasse un peu ...

Aussi j'identifie pas ton tableau (mescouleurs() ?) dans tes 2 macros ci
dessous :

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

sub DiffCouleur10cYD1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent
curseur=ThisComponent.currentcontroller.ViewCursor
' change les 10 caractères qui suivent le curseur courant par une couleur
aléatoire
  for i = 1 to 10
      curseur.goright(1,true)
      curseur.CharColor=rgb(i*24,0,0)
      curseur.CharColor=rnd()*16581375
      curseur.goleft(1,false)
      curseur.goright(1,false)
  next
end sub
ou
REM ***** BASIC *****

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

sub DiffCouleurAleatoire10cYD2
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent
curseur=ThisComponent.currentcontroller.ViewCursor
' change les 10 caractères qui suivent le curseur courant par une couleur
aléatoire
   for i = 1 to 10
       curseur.goright(1,true)
       curseur.CharColor=rgb(i*24,0,0)
       curseur.CharColor=rnd()*16581375
       curseur.goleft(1,false)
       curseur.goright(1,false)
   next
end sub