Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je souhaiterais savoir s'il est possible de lancer :
- une macro si clic dans une colonne précise + appui touche CTRL
- une autre si clic dans la meme colonne + appui touche CTRL + MAJ
Bonjour.
À ma connaissance ce n'est pas possible. Solutions de remplacement:
1 - Le faire à l'aide du double clic et du clic droit respectivement
2 - Lors de la sélection de la cellule, Rendre visibles et positionnés à sa droite deux boutons qui le feront
3 - Le faire uniquement à l'aide de sélections consécutives de la cellule source puis cible.
4 - Un double clic sur une cellule de la colonne A ou B y copie la date en D
À +
Toutefois :
- il faudrait que je désactive, le temps de la macro, le menu contextuel.Est-ce possible ?
- est-il possible de l'associer au double-clic gauche ?
- pourriez-vous m'éclairer sur le code :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Colonne As Integer
Dim Retour As Long
Retour1 = GetAsyncKeyState(16)
retour2 = GetAsyncKeyState(17)
Colonne = Target.Column
If Colonne = 4 Then
If (Retour1 And retour2 And 32768) <> 0 Then
'Code à exécuter si Ctrl + Maj
Range("B1") = ActiveCell
Exit Sub
End If
If (retour2 And 32768) <> 0 Then
'Code à exécuter si Ctrl
Range("B3") = ActiveCell
Exit Sub
End If
End If
End Sub
Nouvelle procédure pour supprimer le menu contextuel si colonne=4
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Colonne As Integer
Dim Retour As Long
Cancel = False
Retour1 = GetAsyncKeyState(16)
Retour2 = GetAsyncKeyState(17)
Colonne = Target.Column
If Colonne = 4 Then
If (Retour1 And 32768) <> 0 And (Retour2 And 32768) <> 0 Then
Cancel = True
'Code à exécuter si Ctrl + Maj
Range("B3") = ActiveCell
Exit Sub
End If
If (Retour2 And 32768) <> 0 Then
Cancel = True
'Code à exécuter si Ctrl
Range("B3") = ActiveCell
Exit Sub
End If
End If
End Sub
En fait c'est un code que j'ai récupéré sur le net et je dois dire que je ne me suis pas posé la question.
En y regardant de plus près, je vois que retour1 prend la valeur -32768 si Maj est appuyé (idem pour retour2 avec Ctrl). 0 dans le cas inverse.
Je pense donc que l'on peut remplacer ces lignes par
If Retour1 = -32768 And Retour2 = -32768 Then
Et je viens de m'apercevoir que je n'avais pas modifié mon code en totalité mais peut être avais tu rectifié.
il faut remplacer Dim Retour par Dim Retour1
et ajouter une ligne pour Retour2.
Si ça t'intéresse, je te joins la liste des valeurs à envoyer à la fonction GetAsyncKeyState en fonction de la touche testée.
a ou A | 65 |
b ou B | 66 |
c ou C | 67 |
d ou D | 68 |
e ou E | 69 |
f ou F | 70 |
g ou G | 71 |
h ou H | 72 |
i ou I | 73 |
j ou J | 74 |
k ou K | 75 |
l ou L | 76 |
m ou M | 77 |
n ou N | 78 |
o ou O | 79 |
p ou P | 80 |
q ou Q | 81 |
r ou R | 82 |
s ou S | 83 |
t ou T | 84 |
u ou U | 85 |
v ou V | 86 |
w ou W | 87 |
x ou X | 88 |
y ou Y | 89 |
z ou Z | 90 |
espace | 32 |
souris | Bouton droit 1 |
souris | Bouton gauche 2 |
BackSpace| 8 |
Tab | 9 |
Suppr | 12 |
Entree | 13 |
MAJUSCULE| 16 |
Controle | 17 |
Alt | 18 |
Pause | 19 |
Caps Lock| 20 |
Merci dra72,
Avec tes indications, cela fonctionne bien.
Seul soucis, je trouve que le clic droit n'est pas bien "reactif" (peut-etre dû à mon pc ; je vais essayer sur un autre)
En effet, sur le fichier exemple cela fonctionne parfaitement.
C'est lorsque je l'ai intégré dans mon fichier de planif, la macro événementielle "dbleclic droite" était 'ralenti' par la macro événementielle 'changement de sélection' (qui génére des calculs).
En désactivant cette seconde macro, j'ai retrouvé la réactivité attendue.
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD