Page 1 sur 1

[Résolu][Writer] Mettre en gras un champ de texte

Publié : 10 mai 2021 16:06
par Kilin
Bonjour,

J'essaie de faire une fonction qui transformerait un champs de texte en BOLD, mais ca ne fonctionne pas :-( J'obtiens l'erreur variable d'objet non définie.
Je précise que je ne suis pas programmeur et que j'essaie d'adapter des bouts de code trouvés par ci par la.

Voici le morceau de code, qui devrait fonctionner par l'appel de BOLDIFY ("exemple") si le champs de texte sur mon document s'appelle exemple.

Code : Tout sélectionner

Function BOLDIFY(NomChampMaitre as String)
Dim oEnum, oField 

   oEnum = ThisComponent.getTextFields().createEnumeration()
   Do While oEnum.hasMoreElements()
      oField = oEnum.nextElement()
      If oField.TextFieldMaster.Name = NomChampMaitre Then
         BOLDIFY = oField.TextFieldMaster.Content
      End If
   Loop

	BOLDIFY.charWeight = com.sun.star.awt.FontWeight.BOLD

End Function
Merci pour votre aide !

Re: [Writer] Mettre en gras en un champs de texte

Publié : 10 mai 2021 17:11
par Dude
Salut,

Pas la peine de descendre sur la propriété .TextFieldMaster.
Il faut agir sur .Anchor dans laquelle on retrouve les propriétés .Char...
On les voit quand on utilise XRay.

Réponse faite hors contexte(*).

(*) Fournir le contexte signifie joindre un document explicatif et exhaustif permettant de comprendre et surtout reproduire la problématique.

Re: [Writer] Mettre en gras en un champs de texte

Publié : 10 mai 2021 18:13
par Kilin
Dude a écrit :Salut,

Pas la peine de descendre sur la propriété .TextFieldMaster.
Il faut agir sur .Anchor dans laquelle on retrouve les propriétés .Char...
On les voit quand on utilise XRay.

Réponse faite hors contexte(*).

(*) Fournir le contexte signifie joindre un document explicatif et exhaustif permettant de comprendre et surtout reproduire la problématique.
autant pour moi, voici mon document ou je tente de mettre le champs requete en BOLD.

Re: [Writer] Mettre en gras en un champs de texte

Publié : 10 mai 2021 20:28
par Dude
Evite de citer l'intégralité des messages, cela alourdit inutilement la lecture.

Qu'est ce que tu n'as pas compris dans :
Dude a écrit :Il faut agir sur .Anchor dans laquelle on retrouve les propriétés .Char...
Un exemple pour comprendre :

Code : Tout sélectionner

Sub Test
	oDoc = ThisComponent
	oChamps = oDoc.getTextFields
	for each oChamp in oChamps
		if oChamp.TextFieldMaster.Name = "requete" then exit for		
	next
	with oChamp.Anchor
		.CharWeight = 150 
		.CharColor = RGB(128,0,200)
	end with
End sub
A propos des propriétés .Char... : https://wiki.openoffice.org/wiki/FR/Doc ... _Documents

Re: [Writer] Mettre en gras en un champs de texte

Publié : 10 mai 2021 21:16
par Kilin
bonsoir,

merci pour ta réponse!

J'ai essayé d'adapter le morceau de code que tu as indiqué mais cela ne fonctionne pas. Il faut bien déclarer oDoc, oChamps et oChamp comme object ?

Merci pour ton aide, comme je l'ai précisé je ne sis pas programmeur :-(

Re: [Writer] Mettre en gras en un champs de texte

Publié : 11 mai 2021 08:08
par Dude
Kilin a écrit :Il faut bien déclarer oDoc, oChamps et oChamp comme object ?
Enlève la ligne Option Explicit

Re: [Writer] Mettre en gras en un champs de texte

Publié : 11 mai 2021 09:27
par Kilin
Cela semble fonctionner, mais ce n'est pas tout a fait ce que je cherchais a faire.

Dans le fichier joint, j'essaie d'afficher afficherequete qui devrait inclure requete en normal + requete en gras, la cela provoque une erreur.

Re: [Writer] Mettre en gras en un champs de texte

Publié : 11 mai 2021 09:52
par Dude
Kilin a écrit :Cela semble fonctionner, mais ce n'est pas tout a fait ce que je cherchais a faire.
Ah bon ? Je te cite :
Kilin a écrit :je tente de mettre le champs requete en BOLD
Donc la question change maintenant pour :
Kilin a écrit :j'essaie d'afficher afficherequete qui devrait inclure requete en normal + requete en gras, la cela provoque une erreur
Tout cela n'est pas très clair.
Merci de mettre une copie écran de l'effet attendu.

Re: [Writer] Mettre en gras un champ de texte

Publié : 11 mai 2021 10:08
par Kilin
Désolé si je me suis mal exprimé.
A la base, j'essayais de faire une fonction qui me permettrait de mettre certains éléments de la requête en gras, de la manière requete + bold("requete") + requete

Re: [Writer] Mettre en gras un champ de texte

Publié : 11 mai 2021 11:35
par Dude
Ton document ouvre un dialogue, si je l'annule, j'arrive à cette présentation :
capture.jpg
Que faut-il faire pour arriver à l'effet attendu de ces 3 paragraphes ?

Re: [Writer] Mettre en gras un champ de texte

Publié : 12 mai 2021 16:36
par jeanmi2403
Salut,
Ton code reprend un exemple de Pierre-Yves Samyn, qu'il faudrait comprendre avant de le bricoler.
Il y a là dedans tout un tas de code inutile pour ton problème, et à priori une confusion entre les champs du document et les contrôles de la boîte de dialogue.
Je suppose qu'il s'agit de construire un rapport avec un certain nombre de paramètres ?
Il faudrait donc :
  1. Définir clairement le projet dans sa globalité
    Décomposer en tâches élémentaires
    Réaliser un programme pour chacune
Sans un apprentissage minimum de la programmation, ce sera difficile....
Note : la procédure test dans ton fichier fonctionne très bien, et fait exactement ce qui lui est demandé.
Cordialement,