Le 24/03/2013 14:40, pierre-yves samyn a écrit :
Bonjour
Michel ANDREU-2 wrote
pour affecter une macro à une cellule, autrement que
pour sélectionner une feuille bien sûr ; par exemple pour effectuer un
tri, comment fait-on ?
C'est une question potentiellement assez vaste...
Une question importante est peut-être davantage
comment désire-t-on déclencher la macro ?
Quelques principes généraux...
Le lancement d'une procédure se fera en réaction à un événement.
Les "média" (au sens de moyen de transmission de l'information) les plus
courants seront le clic (ou double clic) et le raccourci-clavier.
Le lancement par raccourci-clavier peut sembler simple à gérer:
on choisit le raccourci et on associe la macro. En fait cela peut
être un peu plus compliqué car les raccourcis sont par défaut
définis pour tout LibreOffice ou tout Calc.
On voit qu'un programmeur "prudent" devra s'assurer que la
macro est disponible (et non stockée dans un classeur particulier)
et que le contexte d'exécution est bien celui attendu. Se posent
en outre les problèmes d'installation et portabilité du mécanisme.
Les lancements par clics pourront aller du choix de la macro à
lancer dans un menu Outils>Macro ou personnalisé (voire une
extension), ou dans un dialogue personnalisé, au clic sur un
outil dans une barre personnalisée ou non, au clic sur un bouton
de commande ou autre contrôle de formulaire, au double clic
dans la cellule ou à la simple sélection de cette dernière.
Comme tu as pu le remarquer, un clic droit sur une cellule ne
propose pas d'associer le lancement d'une macro à "quelque
chose" (sélection, modification, clic...).
C'est en revanche disponible pour les feuilles : un clic droit
sur l'onglet puis "Événements de la feuille" liste les événements
"feuille" auxquels on peut associer le lancement d'une macro.
On voit que, quel que soit l'événement choisi, la macro devra
traiter le contexte si on désire qu'elle s'applique à une cellule
en particulier : un double-clic "feuille" peut très bien avoir été
fait sur un objet de dessin ou un graphique par exemple...
Il est également possible de programmer la réaction à la
modification d'une cellule en particulier. Ceci est possible
en cas "d'erreur" via Données> Validité (onglet Message
d'erreur> Action).
C'est possible aussi via la création d'un "listener" (gestionnaire
d'événement) défini pour la cellule... mais ceci devra être
activé par une macro qu'on devra préalablement lancer...
par exemple lors de l'ouverture du classeur ou autre
événement :)
Question assez vaste disais-je...
PS: l'assignation d'une macro à un dessin ou image semble
"cassé" en Version 4.0.1.2 windows... Je n'ai pas trouvé d'Issue
et pourtant cela me "rappelle quelque chose" ???
Cordialement
Pierre-Yves
Bonsoir,
Merci Pierre-Yves pour cette complète information. On y voit plus clair.
Jacques Chaillet propose une astuce : créer un objet/dessin de la taille
de la cellule, l'y encrer et affecter la macro à cet objet.
Cela peut, effectivement, résoudre le problème en le contournant.
Bien cordialement.
Michel
--
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
- Re: [fr-users] Calc affecter une macro à une cellule (continued)
(message not available)
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.