[Calc] Formatage du texte sélectionné dans une cellule

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
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 19:03
Localisation : Toulouse

[Calc] Formatage du texte sélectionné dans une cellule

Message par reginacoco »

Bonjour
Je vroudrais pouvoir formatter (couleur, taille, police..) le texte sélectionné dans une cellule (pas tout le texte)
Actuellement par exemple si ma cellule contient "ABCD" et que je veux "exponentier" les lettres "BC", je sélectionne BC et clique sur un bouton qui applique la routine suivante (macro enregistrée)

Code : Tout sélectionner

Sub exposant
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SuperScript", "", 0, Array())


end Sub
Bon ça marche. Mais je voudrais pouvoir l'écrire en basic pour avoir plus de souplesse sur les options/arguments/propriétés
Quelqu'un peut-il m'aider ?
Merci
Dernière modification par Oukcha le 04 mars 2020 11:22, modifié 1 fois.
Raison : Titre corrigé
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Formattage du texte sélectionné dans une cellule

Message par Dude »

Mme Irma a choppé le Coronavirus...
En l'absence de son pouvoir de divination :
Image
Comment joindre un fichier au format ODF
Penser également à dépersonnaliser le fichier joint.
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 19:03
Localisation : Toulouse

Re: [Calc] Formatage du texte sélectionné dans une cellule

Message par reginacoco »

Bonjour Bidouille,
Désolé je comprend.
Voici un fichier test
Le bouton "exposant" est intégré dans la barre de menu TEST
Merci
Pièces jointes
testtexte.ods
(9.45 Kio) Téléchargé 129 fois
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Avatar de l’utilisateur
Noonours
PassiOOnné
PassiOOnné
Messages : 501
Inscription : 11 mai 2013 02:11
Localisation : Aix en Provence

Re: [Calc] Formatage du texte sélectionné dans une cellule

Message par Noonours »

Bonjour
Une proposition de script (avec commentaire) en utilisant un curseur de sélection:

Code : Tout sélectionner

Sub exposant

'sub qui permet de mettre en exposant le deuxième et troisième caractère d'une chaîne

oDoc = ThisComponent
oCell = oDoc.sheets(0).getCellRangeByName("A1") ' cellule A1 de la Feuille1

oCurseur = oCell.CreateTextCursor 	'on crée un curseur qui permet de sélectionner le 
									'texte dans la cellule (par défaut à la fin du texte)
oCurseur.collapseToStart 'on place le curseur en début de zone de texte
oCurseur.goRight(1,false) 'on se déplace à droite de 1 caractère SANS LE SELECTIONNER
oCurseur.goRight(2,true) 'on se déplace à droite de 2 caractères EN LES SELECTIONNANT

oCurseur.CharEscapement = 40 	'on "remonte" les deux caractères sélectionnés de 40 points 
								'(cela pourrait être une valeur négative pour mettre le texte en indice)
oCurseur.CharEscapementHeight = 60 'les deux caractères sont mis à 60% de leur taille

oCurseur.CollapseToEnd
end Sub
A adapter, bien sur, à tes besoins :wink:
Cordialement,
Noonours procrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"

Pour obtenir la réponse la plus précise possible, VEUILLEZ JOINDRE UN FICHIER

LibO 7.6.5.2 Stable et OpenOffice 4.1.15 sous Windows 10
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 19:03
Localisation : Toulouse

Re: [Calc] Formatage du texte sélectionné dans une cellule

Message par reginacoco »

Merci de ta réponse Noonours. :super:
Mais ce n'est pas ce que je cherche.
Je veux pouvoir modifier le(s) caractère(s) sélectionné(s) avec la souris (mis en surbrillance).
il faudrait une fonction/méthode du style getSelectedText :tesfou: :)
Est-ce que tu as pu faire tourner mon fichier exemple ?
Tu sélectionnes une portion de texte dans la cellule et tu cliques sur le bouton "exposant".
Comme ici, si tu sélectionnes une portion de texte et que tu cliques sur B pour mettre en gras.
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Formatage du texte sélectionné dans une cellule

Message par Dude »

Salut,
reginacoco a écrit :Tu sélectionnes une portion de texte dans la cellule et tu cliques sur le bouton "exposant".
Pas besoin de macro pour ça.
Tu personnalises ta barre d'outils avec le bouton qui va bien :
Capture.PNG
Maintenant, je ne vois pas bien l'intérêt puisque ce bouton existe déjà dans la barre latérale.


:!:
Pièces jointes
testtexte.ods
(10.66 Kio) Téléchargé 128 fois
Avatar de l’utilisateur
reginacoco
Membre OOrganisé
Membre OOrganisé
Messages : 77
Inscription : 19 déc. 2006 19:03
Localisation : Toulouse

Re: [Calc] Formatage du texte sélectionné dans une cellule

Message par reginacoco »

Merci Dude.
C'est un EXEMPLE de ce que je voudrais faire.
Mon problème c'est de récupérer les caractères sélectionnés dans la cellule.
En farfouillant dans l'API il y a la propriété Current.Controller.ViewCursor qui fait ça. Mais apparemment elle n'existe que pour Writer et non pour Calc!
ce qui "m'énerve" c'est dans Calc en enregistrant une macro le dispatcher lui, arrive bien à modifier les caractères sélectionnés.
Si le Dispatcher le fait..... doit bien y avoir un truc dans l'API qui le permet. Mais quoi, où, comment ?
Merci encore pour ta réponse.


Dernière remontée par reginacoco le 01 avr. 2020 12:40.
Portable DELL Latitude E6430 - Ubuntu 18.04.1
LibreOffice Version: 6.3.5.2
Build ID: dd0751754f11728f69b42ee2af66670068624673
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3;
Locale: fr-FR (fr_FR.UTF-8); UI-Language: en-US
Répondre