[Résolu][Calc] Gérer les zones de texte

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 !

[Résolu][Calc] Gérer les zones de texte

Messagepar troumad » 29 Oct 2019 14:22


La modération a écrit:Pour la bonne tenue de ce forum, veillez à respecter la syntaxe des balises (première lettre en majuscule puis le reste en minuscules, le tout entre crochets). Merci de corriger [Calc] et non [calc]

Bonjour

Sous calc, on peut faire "Insertion" --> "zone de texte".
J'aimerai pouvoir parcourir ces zones. D'abord pour lire le contenu, ensuite pour le modifier. Je ne sais comment faire. J'ai essayé de chercher, mais, je ne trouve rien qui corresponde. L'expression "zone de texte" est trop vague.
Dernière édition par troumad le 14 Nov 2019 20:10, édité 2 fois.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)

Re: [calc] Gérer les zones de texte

Messagepar Jean-Louis Cadeillan » 29 Oct 2019 14:28

Bonjour,
Nomme-les (clic droit > Nom), elles apparaîtront alors dans le navigateur (F5) comme Objets de dessin.
Cordialement,
Jean-Louis
LibO 6.2.8.2 (x64 avec Java 1.8.0_231) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4605
Inscrit le : 03 Jan 2009 00:56

Re: [calc] Gérer les zones de texte

Messagepar troumad » 29 Oct 2019 14:37

Le nommage est fait. Mais, je fais comment pour trouver un objet de dessin et trvailler avec ?

La modération a écrit:Prière de modifier la balise dans le titre de votre premier message
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)

Re: [calc] Gérer les zones de texte

Messagepar Jean-Louis Cadeillan » 29 Oct 2019 14:43

Tu ouvres le navigateur (touche F5), tu double-cliques sur Objets de dessin, puis tu double-cliques sur le nom de ta zone de dessin que tu souhaites voir : celle-ci sera sélectionnée dans ta feuille (non seulement sélectionnée, mais tu la verras apparaître sur ton visuel de feuille, même si elle est positionnée très bas). Si tu veux effacer une zone de dessin, tu cliques un fois sur son nom dans le navigateur, puis Suppr.
Cordialement,
Jean-Louis
LibO 6.2.8.2 (x64 avec Java 1.8.0_231) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4605
Inscrit le : 03 Jan 2009 00:56

Re: [Calc] Gérer les zones de texte

Messagepar troumad » 29 Oct 2019 15:51

Je crois que je me suis mal exprimé...
Je veux qu'une macro en basic arrive à lire le contenu de la zone texte.
Comme j'arrive à parcourrir les boutons avec
Code : Tout sélectionner   AgrandirRéduire
ThisComponent.Sheets.getByName("verso").DrawPage.Forms.getByName("boutons").getControlModels
   For i = 0 To UBound(oControls)
      oControls(i)....
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)

Re: [Calc] Gérer les zones de texte

Messagepar Bidouille » 29 Oct 2019 17:04

troumad a écrit:Je crois que je me suis mal exprimé...

Et pour éviter cela :
Image
Comment joindre un fichier au format ODF
Penser également à dépersonnaliser le fichier joint.

Et profitez-en pour clôturer également votre précédente question :
https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=60856
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10219
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

Re: [Calc] Gérer les zones de texte

Messagepar troumad » 29 Oct 2019 18:33

Je joins le fichier, mais vu la taille du code (c'est celui qui génère l'erreur de mon message précédent), je ne pense pas que ça serve à grand chose.
Et si on veut pouvoir l'utiliser, il faut récupérer en fait d'autres fichiers (.rcs) qui sont tous ici : h**p://troumad.org/OOo/Rolisteam.zip en gardant arborescence du zip.
Attention, le fichier joint utilise tout le temps CPU pour LibO 6.3. Il est conseillé d'utiliser LibO 6.2 (bogue de LibO 6.3 ?) . Certaines parties sont prévues pour Linux, je n'ai pas encore étudié Windows.

J'aimerai bien par le biais de ce travail pousser des gens à tester LibreOffice ou OpenOffice.
Pièces jointes
Feuille_Chronique.ods
(198.39 Kio) Téléchargé 5 fois
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)

Re: [Calc] Gérer les zones de texte

Messagepar Dude » 14 Nov 2019 16:52

troumad a écrit:Je joins le fichier, mais vu la taille du code (c'est celui qui génère l'erreur de mon message précédent), je ne pense pas que ça serve à grand chose.

Non effectivement, si c'est pour faire planter nos machines, cela ne sert à rien.
En plus, le document est imbitable et on ne comprend pas ce qu'il y a à voir.
capture.png

Il t'appartient donc de fournir un document exhaustif et limité à la seule problématique que tu décris.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 21131
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Calc] Gérer les zones de texte

Messagepar troumad » 14 Nov 2019 17:21

Donc un exemple minimaliste...
Il n'a qu'une zone de texte. Je voulais savoir s'il est possible de lire le contenu avec une macro. Et puis, peut-être après d'écrire dedans aussi avec une macro.
Pièces jointes
Test_zone_de_texte.ods
(7.83 Kio) Téléchargé 4 fois
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)

Re: [Calc] Gérer les zones de texte

Messagepar luky-luke » 14 Nov 2019 18:34

Bonjour
troumad a écrit:J'aimerai pouvoir parcourir ces zones. D'abord pour lire le contenu, ensuite pour le modifier
Dans ton fichier, ce n'est pas une zone de texte mais une forme (rectangle). Elle offre l'avantage de pouvoir lui affecter une macro. Dans le fichier joint, j'ai nommé la forme "Texte1" et assigné la macro ZoneDeTexte.

troumad a écrit:Sous calc, on peut faire "Insertion" --> "zone de texte"
Au premier clic sur la forme, la macro se déclenche et sélectionne la forme, un deuxième clic pour placer le curseur.

Code : Tout sélectionner   AgrandirRéduire
sub ZoneDeTexte
Dim oDoc   as object, dispatcher as object
Dim oForms as object, Forme As Object, NomForme As String
Dim i As Integer
oDoc = ThisComponent
oDocF = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oForms = oDoc.DrawPages.GetByIndex(0)
Nb = oForms.Count
   For i = 0 To Nb-1
      Forme = oDoc.DrawPages.GetByIndex(0).GetByIndex(i)
MsgBox("Et si je clic dedans je vais pouvoir écrire",16,Forme.String)
      NomForme = Forme.Name
         If NomForme = "Texte1" Then
            oDoc.CurrentController.Select(Forme)
            dispatcher.executeDispatch(oDocF, ".uno:DrawText", "", 0, Array())
         End if
   Next i
End sub

 Ajout : Même jour mais 1 heures plus tard. Changement de fichier et quelques explication dans le fil suivant à propos de protection des feuilles et donc des formes.
Protection feuille et forme Dispatcher VS API 

Cordialement
Luke
Pièces jointes
Test_zone_de_texte_1.ods
(15.47 Kio) Téléchargé 3 fois
Dernière édition par luky-luke le 14 Nov 2019 22:31, édité 1 fois.
AOO 4.1.3 et LibO 5.3.7.2 Ubuntu 16.04 LTS et Debian 9
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 915
Inscrit le : 27 Nov 2010 01:17
Localisation : gâtine deux-sèvrienne

Re: [Résolu][Calc] Gérer les zones de texte

Messagepar troumad » 14 Nov 2019 20:16

Voici un retour efficace, mais qui m'a fait travailler et découvrir des choses sur msgbox ( https://wiki.openoffice.org/wiki/FR/Documentation/BASIC_Guide/Message_and_Input_Boxes_(Runtime_Library) )
Suite à ton message, j'ai cru avoir fait une fausse manipulation. Mais, non, c'est juste que les noms des menus ne sont pas adaptés à l'utilisation des macros. En effet, générer une forme (rectangle) en faisant "Insertion-> zone de texte", c'est assez déroutant... Je n'avais pas fait des recherches dans "frame" à l'aide de Xray, je cherchais désespérément un nom avec "text" dedans...
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)

Re: [Résolu][Calc] Gérer les zones de texte

Messagepar troumad » 17 Nov 2019 15:49

Bonjour

J'ai trouvé mieux qu'une zone de texte : une zone de texte ! C'est con non ?
Un autre élément qui s'appelle aussi zone de texte, celle qu'on trouve dans les formulaires. On peut la lier à une case, il est alors facile de trouver le contenu de la zone de texte : le contenu de la case.

J'ai un peu rusé en mettant ma zone de texte sur la case en imposant un fond blanc à la zone de texte et tout est bon.
Les intérêts de la manipulation :
- plus facile d'écrire un texte que dans une case de writer
- la première zone de texte (Insertion->zone de texte) devient protégée quand on protège la page, mais pas celle-là.
- j'ai trouvé une astuce pour changer la taille du texte avec un bouton.

Une autre différence entre les deux zones de texte :
- les images ne peuvent passer sur la seconde (formulaire) qui cachera toujours l'image alors qu'avec la première, l'image est toujours dessus.

C'est sur la seconde page de la PJ. La fonction pour changer la taille de la police de caractères est la fonction taille dans le module "Module1"

Pour information le fait d'avoir deux noms semblables pour deux noms différents a déjà gêné quelqu'un : https://bugs.documentfoundation.org/sho ... ?id=128227
Pièces jointes
Ventiel.ods
(187.68 Kio) Téléchargé 4 fois
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Avatar de l’utilisateur
troumad
Membre lOOyal
Membre lOOyal
 
Message(s) : 41
Inscrit le : 15 Août 2019 13:52
Localisation : Genas (F-69)


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 4 invité(s)