Microsoft 365 raccourcis clavier

GuiDUG

XLDnaute Nouveau
Bonjour

J'ai créé des raccourcis clavier qui me permettent de lancer des macros.

Je voudrais que ces raccourcis clavier ne soient fonctionnels que pour le fichier qui contient les macros associées.

Actuellement, si j'ai un autre fichier EXCEL ouvert et que l'on utilise un des raccourci clavier, il lance la macro associée...ce que je ne veux pas.

Y'a t-il une fonction ou un paramétrage à faire pour résoudre ce problème ?
 
Solution
Re,

Ces macros événementielles se placent dans le module thisworkbook.
Sans titre.png

Dans l'exemple joint, le raccourci Ctrl i lance la macro bonjour quand tu es sur le classeur contenant les macros, les autres classeurs, quand ils sont actifs, gardent le raccourci Ctrl i standard qui passe la cellule en italique.

Bien cordialement, @+

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Guy,
Sans fichier difficile de bien comprendre.
Avez vous "déprogrammer" les touches avant de sortir de votre fichier initial ?
Par ex une macro qui programme Ctrl+Alt+j :
VB:
Sub ProgrammeTouche()
  Application.OnKey "^%j", "test"
End Sub
Sub DéprogrammeTouche()
  Application.OnKey "^%j"
End Sub
Sub test()
  MsgBox "Appui sur Ctrl + Alt + J"
End Sub
ProgrammeTouche redirige la combinaison Ctrl+Alt+j vers la macro Test
DéprogrammeTouche rétablit les fonctions initiales des touches.
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour GuiDUG, sylvanu, le forum

GuiDUG, utilise les événementielles du Workbook pour activer/désactiver tes raccourcis.

Bien cordialement, @+
VB:
Private Sub Workbook_Activate()

End Sub

Private Sub Workbook_Deactivate()

End Sub
 

GuiDUG

XLDnaute Nouveau
Bonjour

J'ai mal exprimé mon problème.
J'ai un 1er fichier qui contient des macros activées par des raccourcis clavier.
S'il y'a un second fichier ouvert en même temps :
-si mon 1er fichier est celui qui est actif, mes raccourcis clavier fonctionnent et activent le macros associées, c'est le but recherché.
-par contre si c'est le second fichier qui est actif, et que j'utilise un des raccourcis clavier du 1er fichier, cela va lancer les macros du 1er fichier..dans le second fichier....Ce qui n'est pas l'effet voulu.

Finalement, j'ai rajouté le code ci-dessous qui résoud mon problème

VB:
If ActiveWorkbook.Name <> ThisWorkbook.Name Then
End
End If

Merci pour votre réactivité

Problème résolu
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour le fil, le forum

@GuiDUG , oui cela fonctionne aussi, mais je trouve la solution des événementielles (que j'ai évoquée en post 3) plus adaptée et plus pérenne car elle a l'avantage, en cas de diffusion du fichier, de restaurer tous les raccourcis standard (et il y en a légion, on ne peut savoir quels sont ceux utilisés habituellement par un utilisateur lambda) pour le classeur actif si certains sont modifiés par le classeur contenant les raccourcis modifiés.

Bien cordialement, @+
 

GuiDUG

XLDnaute Nouveau
J'ai recopié ton code.
Quand je bascule du 1er fichier au 2em, j'ai bien le 'Workbook_Deactivate' qui se lance.
Quand je bascule du 2em fichier au 1er, j'ai bien le 'Workbook_Activate' qui se lance.
Mais dans tous les cas mes raccourcis claviers restent actifs, et les macros se lancent encore de mon 2em fichier.
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re,

Ces macros événementielles se placent dans le module thisworkbook.
Sans titre.png

Dans l'exemple joint, le raccourci Ctrl i lance la macro bonjour quand tu es sur le classeur contenant les macros, les autres classeurs, quand ils sont actifs, gardent le raccourci Ctrl i standard qui passe la cellule en italique.

Bien cordialement, @+
 

Pièces jointes

  • Exemple GuiDUG.xlsm
    14.2 KB · Affichages: 10

GuiDUG

XLDnaute Nouveau
J'ai fait les tests, ça fonctionne.

La solution en poste 4 marche très bien.

La solution de Yeahou fonctionne aussi..et je la trouve effectivement mieux car elle permet de désactiver les raccourcis en dehors du fichier concerné et de rendre actif les raccourcis sur les autres fichiers.
En plus cette solution permet de coder les raccourcis via les macros, et non en attribuant les raccourcis via les options des macros.
Je conseil donc la solution de Yeahou.

Merci Yeahou
 

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Re,

Ah d'accord, je n'avais pas compris que tu affectais manuellement tes raccourcis et j'ai supposé, tout à fait arbitrairement d'ailleurs, que tu maitrisais déjà la méthode Onkey. Sinon je t'aurai proposé un code plus complet dès le début.

Bonne journée !
Bien cordialement, @+
 

Discussions similaires

Réponses
21
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 863
Messages
2 113 663
Membres
111 933
dernier inscrit
usager