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 !
[...]
If PysDoc.getTextFieldMasters.hasByName("com.sun.star.text.FieldMaster.User." & PysName)Then
PysField =PysDoc.getTextFieldMasters.getByName("com.sun.star.text.FieldMaster.User." & PysName)
' Syntaxe pour un texte
' PysField.Content ="PY " & time
' Syntaxe pour un nombre
PysField.Value = PysField.Value * 2
Else
msgbox "Champ utilisateur pas trouvé"
End If
[...]
Le premier, c'est que dans mon cas, je ne trouve l'élément qu'avec
If PysDoc.getTextFieldMasters.hasByName("com.sun.star.text.fieldmaster.SetExpression" & PysName)Then
le second, c'est que le champ value n'existe pas. Je suis arrivé à trouvé le chemin grâce à XRay. Et ce dernier ne semble pas me donner l'accès à la valeur de ma variable.
Pour information, les noms des éléments sont (d'après Xray) :
Dernière modification par troumad le 13 mai 2022 15:49, 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)
Nous nous devons de verrouiller le fil de discussion où vous aviez posté ce message.
Nous vous rappelons les règles de ce forum et notamment la n° 7
Un sujet = le problème d'une seule personne
Comme vous avez pu le lire, ce sujet est désormais marqué [Résolu].
Si vous avez également un problème concernant ce sujet, c'est que ce dernier est différent, votre configuration ou la version du programme ne sont pas les mêmes que celle de l'auteur de ce fil à la date de création du fil.
Dans ce cas et pour des raisons de lisibilité sur ce forum, nous avons déplacé votre message en rappelant le lien du fil origine.
Vous pouvez éditer votre message pour modifier éventuellement son titre pour qu'il soit en adéquation avec votre sujet.
Pour information, on m'a donné ailleurs une réponse. J'attends la permission l'auteur de l'aide pour donner la réponse ici.
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)
troumad a écrit : ↑13 mai 2022 11:42
Pour information, on m'a donné ailleurs une réponse.
C'est assez gavant ce genre de réponse car ça laisse ceux qui te lisent dans une impasse.
Quand on poste la même question sur d'autres forums, il est d'usage de le mentionner en fournissant un lien tout simplement.
Sub choix
dim i as integer
dim PysField as object
dim nomType as string
dim newType as string
dim elements(20)
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
elements = ThisComponent.TextFieldMasters.getElementNames()
rem Chercher la variable "affichage"
for i=0 to ubound(elements)
if (instr(elements(i),"affichage")>0) then
rem je récupère dans la variable "valeur" la valeur de ma variable recherchée
rem avec cette méthode, je ne peux pas avoir une autre variable dont le nom contient affichage, sinon, il faut faire un autre test.
valeur= ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content
rem je mets une autre valeur
ThisComponent.TextFieldMasters.getByName(elements(i)).DependentTextFields(0).content = "autre_chose"
REM mettre à jour l'affichage de la variable
dispatcher.executeDispatch(document, ".uno:UpdateFields", "", 0, Array())
REM pas joli dans un for, mais ça permet de sortir dès qu'on a trouvé ce qu'on cherche
i=ubound(elements)
endif
next i
End Sub
Ce document utilise cette fonction pour échanger la valeur de la variable :
test.odt
Cliquez sur bouton et la macro s'exécute.
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)