Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum 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 !
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)
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 10: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
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
Cordialement,
Noonoursprocrastinateur perfectionniste: "Je fais rien, mais demain je l'ferai mieux"
Merci de ta réponse Noonours.
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
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
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 10: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