Action quand Ctrl + Clic droit

[Fermé]
Signaler
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
-
Bonjour,

Je cherche un code me permettant d'exécuter un code si un ctrl + clic droit a été fait sur une cellule.

Merci d'avance.

Cordialement.

4 réponses

Messages postés
7568
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 octobre 2021
663
Bonjour,

il n'y a pas besoin de code.
Lis ceci:

http://www.info-3000.com/vbvba/raccourciclavier.php
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Très intéressant. Cependant, je ne vois pas comment faire pour le "RightClick"?
Messages postés
7568
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 octobre 2021
663
Tu peux le mettre dans l'évènement de ta feuille comme ceci:

Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MsgBox "ceci est un test"
End Sub


Mais le mieux c'est le raccourci clavier.

Le clic droit à déjà plusieurs fonctions!

Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Bonjour,

Je vous explique un peu le principe.

En fait, on utilise un logiciel de "Clic to call". Le clic to call s'active lorsque je fais Ctrl + clic droit sur la cellule excel contenant le numéro de téléphone. Donc en fait le but serait de colorer les numéros déjà appelés. Et pour automatiser la chose (plutôt que de colorer les cellules à la main), j'aurais souhaité colorer la cellule dès que le numéro a été appelé. Pour colorer les cellules, pas de problème, pour lancer le code sur un "Ctrl + clic droit", c'est une autre histoire...

Il y a sinon peut-être une autre solution, le logiciel de clic to call fait un copier automatique sur la cellule contenant le numéro pour le coller automatiquement chez lui. Donc, peut-être qu'il faudrait plutôt utiliser un code disant que si la fonction "Copier" a été utilisée, la cellule se colore...

Merci encore de votre aide.

Cordialement.
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Sinon j'avais une autre solution, c'était d'utiliser un autre raccourci pour lancer mon clic to call, à savoir Ctrl + Shift + Clic droit. Donc j'aurais pu mettre un code :

Application.OnKey "+^", "test"


Mais cela ne marche pas, il semblerait qu'il faille une autre touche après. je ne peux pas utiliser que du Ctrl et Maj, il faudrait un Ctrl + maj + a par exemple. Mais ce n'est pas ce que je veux.
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
De plus, le BeforeRightClic ne marche pas dans la mesure ou j'appuie sur la touche Ctrl en même temps...
Messages postés
7568
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 octobre 2021
663
Tu peux aussi lancer ta macro à partir du menu contextuel:

http://www.excelabo.net/excel/remplacer_menu_contextuel
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
La macro perd alors tout son intérêt. Le but est qu'à chaque fois qu'un utilisateur utilise le Ctrl + clic droit pour appeler un numéro, celui-ci se colore.
Messages postés
16026
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 octobre 2021
1 548
Bonjour a tous,

appui sur touche crtl + clic droit souris sur une cellule d'une feuille:

Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Const VK_CONTROL = 17       'Touche "Control".

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If GetAsyncKeyState(VK_CONTROL) <> 0 Then
        MsgBox "Touche CTRL Appuyee"
    End If
End Sub


https://support.microsoft.com/fr-fr/help/465098
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Bonjour,

Merci f894009. Par contre, j'ai copié votre code et je l'ai collé sur le code de la feuille. Rien ne se passe lorsque je fais Ctrl + clic droit...
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Si je ne fais qu'un clic droit, il me dit "Erreur de compilation, Sub ou Fonction non définie" et me surligne GetAsyncKeyState.
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Ok... bon du coup je viens de comprendre. Si je quitte mon logiciel de Click to Call, le code marche parfaitement. Donc en fait, la macro Excel ne s'exécute pas si le logiciel est activé... Je ne comprend pas pourquoi.

Pourriez-vous me dire comment exécuter un code si une cellule a été copiée.

Par exemple, si A1 a été copié (avec les pointillés qui tournent), alors A1 se colore en jaune.

Je vais essayer comme ça.

Merci d'avance.
Messages postés
16026
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 octobre 2021
1 548 >
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019

Re,

fichier exemple pour fonctionnement : https://www.cjoint.com/c/EHunE22CA5f

Par exemple, si A1 a été copié (avec les pointillés qui tournent), alors A1 se colore en jaune. je regarde la chose
Messages postés
850
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
15 février 2019
51
Le fichier marche très bien. Par contre dès que je lance mon logiciel de clic to call, on dirait qu'il prend le dessus. Que le code ne s'exécute pas jusqu'au bout parce que le logiciel de clic to call exécute lui-même une action. En tout cas, je suis très déçu que ça ne marche pas, ça aurait dû...