Calc affecter une macro à une cellule

Bonjour,

Malgré quelques recherches je n'ai pas trouvé de réponse réalisable à ce sujet.

Il s'agit, par un clic sur une cellule, d'ouvrir une feuille. Et ainsi de suite pour une série de cellules dont chacune serait affectée à une feuille différente.
Bien entendu, on peut le faire avec des boutons mais c'est pour simplifier la réalisation du classeur.

Qui a une solution ?

Merci d'avance

OK Merci, c'est plus simple !

Problème rencontré : difficulté pour formater la cellule (Effet de caractère) ; je n'arrive pas à donner une couleur au texte de la cellule.

As-tu la solution ?

La couleur des liens visités et non visités se configure dans Outils
Options LibreOffice Apparence. Je ne pense pas que tu puisses
personnaliser davantage chacune de tes "cellules lien", à part en jouant
sur la couleur d'arrière plan et la taille.
Daniel

Si je crois, en utilisant plutôt la fonction LIEN.HYPERTEXTE()

Bonne journée
JBF

[...]
La couleur des liens visités et non visités se configure dans Outils
Options LibreOffice Apparence. Je ne pense pas que tu puisses
personnaliser davantage chacune de tes "cellules lien", à part en jouant
sur la couleur d'arrière plan et la taille.

Si je crois, en utilisant plutôt la fonction LIEN.HYPERTEXTE()

Bonne journée
JBF

Comment utilises-tu cette fonction ?

Bonjour,

Je viens d'essayer avec l'assistant fonction.
=LIEN.HYPERTEXTE(http://192.168.0.1;routeur) me renvoie Err :510
Lorsque je valide, il dit trouver une erreur et propose de corriger (il enlève un '/').
Avec =LIEN.HYPERTEXTE(192.168.0.1;routeur) il renvoie #NOM ?

LO 3.6.4.3 / LMDE 32 bits

Bonsoir,
Que vient faire le routeur ici ?

Bonsoir,

De : Michel ANDREU [mailto:michelandreu@gmail.com]
Envoyé : dimanche 3 mars 2013 17:10

>> [...]
>> La couleur des liens visités et non visités se configure dans Outils
>> Options LibreOffice Apparence. Je ne pense pas que tu puisses
>> personnaliser davantage chacune de tes "cellules lien", à part en
jouant
>> sur la couleur d'arrière plan et la taille.
> Si je crois, en utilisant plutôt la fonction LIEN.HYPERTEXTE()
>
> Bonne journée
> JBF
Comment utilises-tu cette fonction ?

Voici un exemple tiré de mon classeur de suivi des bugs sur Bugzilla:
=LIEN.HYPERTEXTE("https://bugs.freedesktop.org/show_bug.cgi?id="&A44;"bug
"&A44)
En A44, je mets simplement le n° de bug (ex: 60306), et dans la cellule qui
contient cette formule, je lis bug 60306, et le lien est:
https://bugs.freedesktop.org/show_bug.cgi?id=60306

Pour aller vers une cellule du même document, la forme est:
=LIEN.HYPERTEXTE("#Feuille2.C2";"vers feuille 2")
Ne pas oublier les " et #
... ni de consulter l'aide qui donne de nombreux exemples

Bonne soirée,
Michel

Il faut mettre les chaînes de caractères entre guillemets. Par exemple :
=LIEN.HYPERTEXTE("http://fr.libreoffice.org";"LibreOffice FR")

Bonne journée
JBF

Ca marche ! Merci.
Cependant il aurait été pratique que l'assistant mette les guillemets automatiquement.

Rien de particulier c'est juste un essai.

Ah, OK !

Merci pour le tuyau.

OK, pour cette question c'est réglé !

Mais, j'insiste, 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 ?

Bonjour Michel,

Pour créer des lien et des commandes liées à des cellules je crée un
dessin rectangulaire que je colle dans une cellule et que j'ancre à
celle-ci avec adaptation de la taille à la cellule.
Le dessin est modifiable à souhait il est possible de lui affecter une
macro et il est possible d'écrire du texte dessus.
En fait c'est un bouton minimaliste.

Pourquoi ne désire tu pas utiliser les boutons disponibles?

Jacques CHAILLET

ps: mon adresse de messagerie ne me permet plus de diffuser sur la liste
tu peux faire suivre.

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 :slight_smile:

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

Bonjour Michel

Michel ANDREU-2 wrote

Merci Pierre-Yves pour cette complète information. On y voit plus clair.

Peut-être pas si clair que ça...

Michel ANDREU-2 wrote

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.

...puisqu'il semble que mon PS soit passé inaperçu :slight_smile:

Cordialement
Pierre-Yves

Bonjour Michel

Michel ANDREU-2 wrote

Merci Pierre-Yves pour cette complète information. On y voit plus clair.

Peut-être pas si clair que ça...

Si, si ...

Michel ANDREU-2 wrote

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.

...puisqu'il semble que mon PS soit passé inaperçu :slight_smile:

Bonjour,

J'ai bien lu mais j'utilise LiBo 3.6.2.2.