Même raccourci clavier sur macro dans plusieurs fichiers
Résolu
hervelam
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans plusieurs fichiers Excel ouverts, j'ai des macro qui portent le même raccourci clavier.
Je me suis aperçu que ce raccourci clavier lançait la macro non pas du fichier actif... mais du fichier Excel qui a été ouvert en premier !
Sauriez-vous comment faire pour qu'il lance la macro du fichier actif ?
En vous remerciant,
HervE
Dans plusieurs fichiers Excel ouverts, j'ai des macro qui portent le même raccourci clavier.
Je me suis aperçu que ce raccourci clavier lançait la macro non pas du fichier actif... mais du fichier Excel qui a été ouvert en premier !
Sauriez-vous comment faire pour qu'il lance la macro du fichier actif ?
En vous remerciant,
HervE
A voir également:
- Même raccourci clavier sur macro dans plusieurs fichiers
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Renommer plusieurs fichiers en même temps - Guide
- Raccourci clavier retourner écran - Guide
- Comment taper / sur clavier - Guide
- Creer un raccourci clavier - Guide
2 réponses
Bonjour à tous,
Michel, je crois que tu as mal saisi le pb... ;-)
Une proposition à condition que tu puisses mettre le même nom à tes macros :
Sub commun() à mettre dans chaque fichier, c'est elle qui doit porter le raccourci clavier. Elle lancera la macro Filtrer() du fichier actif.
Si noms différents et que tu préfères ne pas renommer les macros, rien ne t'empêche d'ajouter une macro (qui aura partout le même nom) qui appelle ta macro de filtrage.
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Michel, je crois que tu as mal saisi le pb... ;-)
Une proposition à condition que tu puisses mettre le même nom à tes macros :
Sub commun() ' Ctrl+R Application.Run (ActiveWorkbook.Name & "!filtrer") End Sub Sub filtrer() MsgBox "macro fichier1" End Sub
Sub commun() à mettre dans chaque fichier, c'est elle qui doit porter le raccourci clavier. Elle lancera la macro Filtrer() du fichier actif.
Si noms différents et que tu préfères ne pas renommer les macros, rien ne t'empêche d'ajouter une macro (qui aura partout le même nom) qui appelle ta macro de filtrage.
eric
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
Bonjour,
sans voir le code et sans boule de cristal
ajoute ActiveWorkbook quelque part pour faire travailler le classeur actif
sans voir le code et sans boule de cristal
ajoute ActiveWorkbook quelque part pour faire travailler le classeur actif
Merci pour ta réponse.
Le pb n'est pas dans le code mais *avant* le code ;-)
En gros le scénario est le suivant.
Dans le fichier1 j'ai une macro1 (qui fait des filtres sur certaines colonnes...) à laquelle j'affecte le raccourci clavier Ctrl+R.
Dans le fichier2 j'ai une macro2 (qui fait des filtres sur certaines colonnes, pas les mêmes...) à laquelle j'affecte aussi le raccourci clavier Ctrl+R.
Mes fichier1 et fichier2 sont tous deux ouverts.
Je suis sur fichier2 (ActiveWorkbook donc ;-)) et je tape Ctrl+R.
Résultat : Excel exécute la macro1 sur fichier2 !!!!!!!
Comment faire pour que Ctrl+R lance macro2 si je suis sur fichier2, mais macro1 si je suis sur fichier1 ?
HervE
Le pb n'est pas dans le code mais *avant* le code ;-)
En gros le scénario est le suivant.
Dans le fichier1 j'ai une macro1 (qui fait des filtres sur certaines colonnes...) à laquelle j'affecte le raccourci clavier Ctrl+R.
Dans le fichier2 j'ai une macro2 (qui fait des filtres sur certaines colonnes, pas les mêmes...) à laquelle j'affecte aussi le raccourci clavier Ctrl+R.
Mes fichier1 et fichier2 sont tous deux ouverts.
Je suis sur fichier2 (ActiveWorkbook donc ;-)) et je tape Ctrl+R.
Résultat : Excel exécute la macro1 sur fichier2 !!!!!!!
Comment faire pour que Ctrl+R lance macro2 si je suis sur fichier2, mais macro1 si je suis sur fichier1 ?
HervE
J'ai eu le malheur d'écrire "en gros", mais en réalité j'ai parfaitement décrit mon scénario, je crois. Je bannirai donc ces 2 mots à l'avenir.
Non, je ne veux pas mettre d'autres raccourcis.
D'abord parce qu'il n'y a que 26 lettres (52 avec les majuscules), dont bcp sont déjà à exclure (Ctrl+C, Ctrl+V).
Ensuite parce que ça fait sens d'utiliser le même raccourci pour faire la même opération d'un fichier à l'autre.
HervE
Non, je ne veux pas mettre d'autres raccourcis.
D'abord parce qu'il n'y a que 26 lettres (52 avec les majuscules), dont bcp sont déjà à exclure (Ctrl+C, Ctrl+V).
Ensuite parce que ça fait sens d'utiliser le même raccourci pour faire la même opération d'un fichier à l'autre.
HervE
Je "sentais" bien qu'il y avait une astuce possible, mais je n'avais pas pensé à Application.Run
J'ai dû ajouter ceci :
car mes noms de fichier contiennent des espaces, et ma procédure est dans un module.
...Et, pour fignoler, j'ai passé ma procédure filtrer() en Private pour qu'elle n'apparaisse pas dans la liste des macros.
La procédure commun() étant elle en Public, bien sûr.
Merci beaucoup ! Ça va changer ma vie :-)
HervE
Ou bien c'est parce que c'est un module Private ?
eric
J'avais d'abord cru qu'il me manquait le nom du module. Du coup je l'ai laissé puisque ça marche.
Après test : ça marche aussi sans le nom du module.
HervE
eric