Bonjour,
Le 31/10/2017 à 22:58, demande_aide_fr@libreoffice.org a écrit :
Sujet:: Connaître le nom de la case à
cocher qui appelle une macro OS:: MacOS X Version:: 5.4.x Question::
Bonjour, je cherche partout mais je coince. Je prépare un fichier
LibreOffice pour une AMAP. J'ai 6 cases à cocher sur une feuille de
calculs. Les six cases appellent la même macro dans le cas d'un
changement d'état. Or l'utilisateur n'a que trois choix possibles sur
les six. Je dois donc connaître l'identitée de la case qui appelle la
macro pour savoir si je la laisse s'activer (<3) ou si je refuse
l'activation (déjà 3 cases cochées). J'ai bien vu un LeNom =
Application.caller mais ça ne fonctionne pas :-(
La macro appelée se présente comme ceci :
Sub OnCheckboxChange()
'instructions
End Sub
Les Sub appelées prennent toujours un paramètre en entrée, celui-ci
pouvant être ignoré (l'exemple ci-dessus). Il suffit de déclarer ce
paramètre pour pouvoir y accéder, ce qui donne, à partir de l'exemple :
Sub OnCheckboxChange(ByRef pEvent As Object)
'instructions
End Sub
pEvent est l'objet appelant (ici, la case à cocher). Grâce à ce
paramètre, on accède à l'appelant, voire au dialogue qui le contient
grâce aux instructions :
'le contrôle appelant :
oControl = pEvent.Source
'le dialogue hôte du contrôle :
oDialog = pEvent.Source.Context
Ceci devrait vous permettre d'avancer.
Note subsidiaire : plutôt que d'interroger la propriété Name du contrôle
case à cocher, vous pouvez aussi exploiter sa propriété Tag (nommée
"Information complémentaire" dans l'IDE), qui est indépendante et risque
peut-être d'être moins retouchée lors d'une maintenance.
Tag peut contenir n'importe quelle information, à votre convenance.
LibreOffice ne l'utilise pas ni ne la modifie.
Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que la liste
reçoive une copie de votre réponse.
Bien cordialement,
--
Jean-Francois Nifenecker, Bordeaux
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être
supprimés
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.