Page 1 sur 1
[Résolu][Writer] Mettre en gras un champ de texte
Publié : 10 mai 2021 14: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 15: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 16: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 18: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 19: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 06: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 07: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 07: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 08: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 09: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 14: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 :
- 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,