[Résolu][Basic]Identifier le raccourci qui a lancé une macro

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

[Résolu][Basic]Identifier le raccourci qui a lancé une macro

Message par jeanmi2403 »

Bonjour,
Un collègue souhaite lancer une seule macro à partir de plusieurs raccourcis clavier et donc prendre des décisions en fonction du raccourci utilisé, ceci pour ne pas multiplier des macros quasiment identiques.
Je lui ai proposé un raccourci qui lance une boîte de dialogue, mais ça ne semble pas lui convenir.
Une macro lancée depuis un raccourci ne reçoit pas d'événement, donc je ne pense pas que ce soit possible, à part en mettant en place un Listener, mais cette solution me semble bien compliquée.
 Ajout : En fait, il n'est pas possible d'identifier quel raccourci, ni quelle icône de la barre d'outils a lancé la macro.  
A plus,
Dernière modification par jeanmi2403 le 27 mai 2023 14:33, modifié 3 fois.
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic]Identifier le raccourci qui a lancé une macro

Message par Dude »

Salut,
jeanmi2403 a écrit : 20 mai 2023 14:58 à part en mettant en place un Listener, mais cette solution me semble bien compliquée.
Oui, c'est un marteau pour écraser une mouche.
Interception via les interfaces com.sun.star.frame.XDispatchProviderInterceptor et com.sun.star.frame.XDispatch
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

Re: [Basic]Identifier le raccourci qui a lancé une macro

Message par ddorange »

Bonjour,
S’il y a par exemple trois raccourcis claviers, le plus simple c’est que chacun commande une macro distincte et que chacune de ces macros lance la macro principale avec un paramètre.

Code : Tout sélectionner

Sub Macro1
   Call MainMacro(1)
End sub

Sub MainMacro(iRc as integer)
   Select Case iRc
        Case 1
        ………
        Case 2
        ……..
        Case 3
        ………
   End Select 
   blabla suite ….
End Sub
Cordialement.
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Basic]Identifier le raccourci qui a lancé une macro

Message par jeanmi2403 »

Salut,
ddorange a écrit : 25 mai 2023 11:47 chacun commande une macro distincte et que chacune de ces macros lance la macro principale avec un paramètre.
j'avais, bien entendu, proposé cette solution à plusieurs lanceurs.
J'ai posé cette question par curiosité...
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic]Identifier le raccourci qui a lancé une macro

Message par Dude »

jeanmi2403 a écrit : 25 mai 2023 12:32 J'ai posé cette question par curiosité...
Et je t'ai répondu.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Basic]Identifier le raccourci qui a lancé une macro

Message par jeanmi2403 »

Bonsoir,
Dude a écrit : 24 mai 2023 13:52 Oui, c'est un marteau pour écraser une mouche.
Je suis bien d'accord.
Dude a écrit : 26 mai 2023 08:28
jeanmi2403 a écrit : 25 mai 2023 12:32 J'ai posé cette question par curiosité...
Et je t'ai répondu.
Merci.
J'ai étudié attentivement (ça m'a pris un certain temps) ta proposition. Intéressant mais complexe.
Ça effraie un peu au lancement de l'écoute de voir 300 lignes se remplir....
Et j'ai fini par trouver, simplement en écoutant le clavier. Mais ça revient au même que la solution à plusieurs lanceurs.
Ça m'a toutefois permis de comprendre les "écouteurs".
A plus,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [HS][Basic]Identifier le raccourci qui a lancé une macro

Message par Bidouille »

Bonjour,

Pourquoi ce fil est balisé [HS] ?
Relisez donc les règles du forum sur le balisage : viewtopic.php?t=3299 :evil:
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [HS][Basic]Identifier le raccourci qui a lancé une macro

Message par jeanmi2403 »

Bonjour,
Bidouille a écrit : 30 mai 2023 06:29 Pourquoi ce fil est balisé [HS] ?
Parce qu'il n'y a pas de réponse à la question, il est impossible d'identifier le raccourci à l'origine de l'appel.
J'aurais pu baliser Résolu, mais ce serait trompeur ?
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [HS][Basic]Identifier le raccourci qui a lancé une macro

Message par Bidouille »

jeanmi2403 a écrit : 30 mai 2023 08:02 J'aurais pu baliser Résolu, mais ce serait trompeur ?
Votre phrase montre que vous n'avez pas lu la signification de chaque balise.