[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 !
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »


La modération vous 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 modification par troumad le 14 nov. 2019 19:10, modifié 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
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

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

Message par Jean-Louis Cadeillan »

Bonjour,
Nomme-les (clic droit > Nom), elles apparaîtront alors dans le navigateur (F5) comme Objets de dessin.
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »

Le nommage est fait. Mais, je fais comment pour trouver un objet de dessin et trvailler avec ?
La modération vous 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
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

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

Message par Jean-Louis Cadeillan »

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 7.6.6.3 (x64 avec Java 1.8.0_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »

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

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
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12226
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

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

Message par Bidouille »

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/v ... =8&t=60856
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »

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 (bug 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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce 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
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25171
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

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

Message par Dude »

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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »

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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce 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
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 936
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

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

Message par luky-luke »

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

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
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par luky-luke le 14 nov. 2019 21:31, modifié 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
troumad
Membre OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »

Voici un retour efficace, mais qui m'a fait travailler et découvrir des choses sur msgbox ( https://wiki.openoffice.org/wiki/FR/Doc ... e_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 OOrganisé
Membre OOrganisé
Messages : 86
Inscription : 15 août 2019 12:52
Localisation : Genas (F-69)

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

Message par troumad »

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
Vous ne pouvez pas consulter les pièces jointes insérées à ce 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)