Raccourcis clavier : activation Macro

Bonjour à tous,

J'en appelle à votre sagesse car je suis tombé sur quelque chose d'incompréhensible.

Mes macros ne s'activent pas de la même façon en fonction du raccourci clavier que je leur affecte.

Lorsque j'utilise le raccourci : ctrl + q la macro s'exécute parfaitement.

Lorsque je change le raccourci pour ctrl + shift + q, la macro ne va pas au bout et s'arrête au milieu du code.

Je ne comprends pas ce qu'il se passe. Ce n'est pas très gênant étant donné que je peux changer de lettre mais je trouve ça étrange, donc par curiosité si quelqu'un a une explication cela m'intéresse.

Très bonne journée à tous :)

Camille

Bonjour,

D'une manière générale il faut veiller à ne pas utiliser des raccourcis pour l'exécution de macros lorsqu'ils qui font partie des raccourcis définis de base dans excel.
Le raccourci crtl + q en est d'ailleurs un. Ce raccourci change le format d'un nombre dans une cellule en format heure.
Vous devez donc juste être conscient que si vous utilisez un raccourci déjà prévu dans excel, vous perdez la fonctionnalité de base de ce raccourci

Pour ce qui est de votre votre raccourci ctrl + shift + q, c'est mieux.
Si vous avez un souci d'exécution de code, ce n'est peut-être pas la raison mais il faudrait vérifier que ce raccourci n'est pas utilisé par une autre application. Sans voir le fichier, ....
Essayez déjà un autre raccourci à titre de test

Cordialement

Bonsoir Dan,

Merci pour ta reponse, peu importe la lettre utilisée lorsque je rajoute shift au raccourci le code ne se lance qu'à moitié.

Il y a seulement, la première partie du code qui s'exécute (à savoir l'ouverture d'un second fichier Excel).

Si je retire le shift sur n'importe quelle lettre le code se lance intégralement (ouverture du second fichier et réalisation de modifications sur ce fichier)

Les raccourcis ne sont pas utilisés sur d'autres applications.

Camille

Bonjour

Pas facile de vous aider sans voir votre fichier ou tout au moins le code et surtout la ligne où il s'arrête

Cordialement

Bonjour Dan,

J'ai ajouté des exemples de fichiers sur lesquels j'utilise cette macro.

64aaa-2022-fm.xlsm (28.22 Ko)
20aaa-2022-fec.xlsx (126.60 Ko)

L'idée de la macro est de sélectionner un numéro de compte sur la feuille FM (fichier : AAA - 2022 - FM). Mon Activecell correspond au N° de compte (colonne A).

La macro ouvre ensuite le fichier AAA - 2022 - FEC (situé sur le bureau) et isole dans une nouvelle feuille les écritures du compte sélectionné.

Lorsque j'affecte la macro au raccourci ctrl+t (par exemple lettre T mais ça peut être une autre lettre) la macro se lance parfaitement.

Lorsque j'affecte la macro au raccourci ctrl+maj+t la macro s'arrête en plein milieu.

Camille

L'idée de la macro est de sélectionner un numéro de compte sur la feuille FM (fichier : AAA - 2022 - FM). Mon Activecell correspond au N° de compte (colonne A).

1. Le n° de compte est placé où parce que dans votre feuille FM je ne le vois pas

2. Ensuite par rapport à votre code et votre fichier posté, il y a un souci dans cette ligne

Nom_Client = Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, " - ") - 1)

Vous avez un espace avant et après le tiret. La ligne devrait être comme ceci

Nom_Client = Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, "-") - 1)

Même chose sur la ligne Année plus bas


3. Lorsque j'affecte la macro au raccourci ctrl+maj+t la macro s'arrête en plein milieu.

Vous avez un message d'erreur affichée ? le code s'arrête sur quelle ligne ?

Bonjour Dan,

1 : Les numéros de comptes se trouvent en colonne A exemple : 425000, 421000...

2 : Les espaces sont supprimés automatiquement lorsque j'ajoute les fichiers sur le forum. Il y a bien des espaces en temps normal. Le fait de mettre le fichier sur le forum passe tous les caractères en minuscules alors qu'il s'agit de majuscules.

3 : Lorsque je mets le raccourci clavier sur un ctrl+maj+t, je n'ai aucun message d'erreur d'affiché. La macro m'ouvre le fichier FEC sans problème mais ne réalise pas les autres actions qui consiste à :

- créer une feuille copie fec

- Filtre sur un compte

- copier ce compte dans une nouvelle feuille.

- Et autre petites modification de mise en forme.

Lorsque le raccourci clavier activant la macro est affecté à ctrl+t (donc sans le maj) la macro s'execute entièrement et sans problème.

Bonjour Camille1234, Dan,

Pourquoi utiliser la touche SHIFT, surtout après une première touche de contrôle clavier?

Utiliser plutôt la touche ALT. D'abord parce qu'on ne risque pas de ripper sur la touche blocage majuscule (SHIFT bloquée) qui passerait les lettres en majuscule.

Ensuite elle est très peu utilisée par les raccourcis EXCEL. Ce qui en fait une touche de raccourci idéale et que j'utilise souvent, associée ou non avec CTRL.

Re,

pour répondre à votre post

2 : Les espaces sont supprimés automatiquement lorsque j'ajoute les fichiers sur le forum. Il y a bien des espaces en temps normal. Le fait de mettre le fichier sur le forum passe tous les caractères en minuscules alors qu'il s'agit de majuscules.

C'est une très mauvaise idée de laisser des espaces dans les noms de fichiers et de feuille, cela ouvre toujours la porte à des erreurs surtout si vous utilisez VBA.
Je ne compte pas le nombre de fois où des demandeurs signalent un souci de code qui est simplement dû au fait qu'ils ont placés un espace dans le nom d'un onglet par exemple. Donc à éviter...

Lorsque je mets le raccourci clavier sur un ctrl+maj+t, je n'ai aucun message d'erreur d'affiché....

Je confirme avoir le même souci. A mon avis ce n'est pas une erreur mais, comme toujours, il faudrait savoir ce que excel voit. Très curieux d'autant que l'utilisation de SHIFT n'est pas interdite par Microsoft.

Toutefois si vous mettez un point d'arrêt sur l'instruction Activeworkbook.hyperlink lien, puis vous continuez en appuyant sur la touche F5. Le code est exécuté ! A croire qu'il y a une temporisation à effectuer !!

- Par contre un truc qui marche (??!!), c'est en plaçant cette instruction juste avant Activeworkbook.hyperlink lien

DoEvents

- Autre solution que je viens de découvrir changer le Q et F et cela fonctionne !

Arrache cheveux... ---> Il faudrait un spécialiste ayant plus de mes maigres connaissances en programmation pour peut-être donner une explication à ce problème lors du choix de la touche Q ou T.

Quoi qu'il en soit, je dirais comme X Cellus, pourquoi s'encombrer d'une touche supplémentaire pour exécuter une macro ? Choisissez un raccourci inexistant (exemple ctrl + e, ...)

Cordialement

Merci Dan et X Cellus pour vos recherches et vos réponses !

J'utiliserais avec plaisir un raccourci clavier en passant par la touche ALT, mais je ne sais pas comment faire. Pour moi les raccourcis clavier se limitent à ctrl + lettre ou ctrl + maj+ lettre.

Excusez mon amateurisme.

Camille

A nouveau,

Ci-dessous le raccourci clavier pour CTRL+ALT+q

Application.onkey "^%q", "macro à lancer" 
'Si on veut que ALT+q faire
Application.onkey "%q", "macro à lancer"

Bonjour,

Pourriez-vous m'indiquer où ce code doit être ajouté.

J'ai fait des tests de la façon suivante mais ça ne fonctionne pas (je suis dans mon classeur de macro perso) :

Sub Test()

Application.OnKey "%q", "Test_B"

End Sub

Sub Test_B()

    MsgBox "Test raccourci"

End Sub

Suite,

Prendre "%w" ou "%t"

Car sinon q c'est le raccourci Excel pour recherche. Cad query.

Je dois passer à côté de quelque chose parce que peu importe la lettre utilisée, le raccourci clavier ne fonctionne pas.

Camille

Bonjour Camille1234, Dan,

Ci-dessous un fichier pour l'exemple. Ne pas oublier de débloquer celui-ci. Par les propriétés du fichier, afin que les macros soient actives.

35classcamille.xlsm (12.08 Ko)

Il comporte une macro qui dès l'ouverture du fichier installe la séquence de touches ALT w. Puis à la fermeture du fichier annule cette séquence.

Private Sub Workbook_Open()
Application.OnKey "%w", "LanceMsb"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "%w", ""
End Sub

Cela lance la boîte de message ci-après.

Sub LanceMsb()
MsgBox "Touches ALT et w sont actives"
End Sub

Ne pas utiliser ALTGr mais bien la touche ALT, d'abord, suivi de la touche w.

image

Bonjour X Cellus,

Merci pour vos conseils. Je comprends que cette macro est propre uniquement à un seul fichier.

J'aimerais pouvoir utiliser ce raccourci clavier sur l'ensemble de mes fichiers Excel en l'ajoutant à mon classeur de macro personnelles. Est ce possible ?

Camille

A nouveau,

Le classeur personnel de macros est nommé personal.xslb.

C'est un fichier que tu dois voir par l'éditeur VBA.

Il s'ouvre automatiquement avec n'importe quel fichier excel ouvert.

suite,

Reviens sur le fichier Excel ClassCamille qui porte les macros pour activer les touches.

Cliquer sur le menu général d'Excel sur l'onglet Développeur

Puis sur Enregistrer une macro

image

Ensuite une fenêtre s'ouvrira comme ci-dessous.

image

Il faudra choisir, classeur de macros personnelles car sinon c'est le classeur ouvert en cours qui recevra la macro.

Tapez la macro avec le code fourni, lui donner un nom. Le plus simple est de tout mettre dans un module.

C'est bien ce que j'ai fait, mais la macro ne s'active pas automatiquement à l'ouverture d'un fichier Excel.

Je dois la lancer manuellement pour qu'elle se déclenche et que je puisse utiliser le raccourci.

Camille

image

Suite,

Si tu souhaites le même principe que le récent classeur posté.

Il faut choisir dans le classeur personal Microsoft Excel Objets et faire clic sur la coche afin de le détailler.

image

Ensuite couper ce qui concerne le code workbook. C'est à dire Workbook_Open et Workbook_beforeClose et copier dans la partie ThisWorkbook du Personnal.xlsb

Pour cela faire clic droit sur ThisWorkbook et choisir code dans la fenêtre qui s'ouvre.

Laisser dans le module Raccourci la macro LanceMsb

Rechercher des sujets similaires à "raccourcis clavier activation macro"