Bonsoir
dbott wrote
Est-ce que tu connais une méthode pour tester si l'objet a une propriété
(value dans notre cas) avec de l'utiliser?
Désolé pour le délai... avec le "dynamisme" de la liste je n'ai pas vu tout
de suite ce complément de demande...
Tout d'abord une réponse de principe. On peut bien sûr tenter de tout
prévoir dans une seule procédure mais il faut aussi essayer, AMHA, de ne pas
faire une procédure "usine à gaz" qui pourrait se révéler plus difficile à
mettre au point ou maintenir que des "composants" dédiés à une fonction
spécifique.
Ceci étant ta remarque est légitime puisque je suppose que tu envisages
d'utiliser la fonction dans le tableau et de pouvoir lui passer soit une
cellule, soit une plage.
Pour différencier une plage d'une feuille tu peux utiliser la propriété
ImplementationName : "ScVbaRange" ou "SvVbaRange" (selon que la plage est
passée depuis la procédure Main ou via l'appel depuis le tableau),
ScVbaWorksheet s'il l'objet est une feuille.
Dans le cas d'une plage, il faut encore traiter le cas particulier de la
plage d'une seule cellule (seul cas où la propriété Value est disponible et
a du sens). Tu peux utiliser pour cela isArray(PysObj.value) qui va
indiquer si la propriété contient un tableau (plage) ou non (cellule).
Puisque tu souhaites gérer ces cas de figure différents, j'ai modifié la
procédure Main qui tentait d'afficher la valeur de l'objet à côté du type.
Ceci n'est bien sûr pas possible pour les plages ou une feuille...
Pour terminer, il semble que les fonctions de ce type ne soient pas
recalculées à l'ouverture dans LibO. Encore une fois je ne programme plus en
VBA depuis des années et je passe peut-être à côté de quelque chose.
Application.Volatile, en principe prévu pour cela semble n'être pas pris en
compte. J'ai donc ajouté une procédure forçant le recalcul via
Application.Calculate, déclenchée à l'ouverture du classeur.
http://nabble.documentfoundation.org/file/n3751117/VBATestVarType.ods
VBATestVarType.ods
PS : j'ajoute aussi qu'il serait beaucoup plus simple en LibOBasic "pur" de
tester ces différents cas via les services supportés
Cordialement
Pierre-Yves
--
View this message in context:
http://nabble.documentfoundation.org/macro-Vartype-sur-une-cellule-dans-une-fonction-tp3738878p3751117.html
Sent from the Users mailing list archive at Nabble.com.
--
Envoyez un mail à users+help@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://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.