affecter macro à "Alt + clic gauche"

Halffy

XLDnaute Occasionnel
Bonjour à tous, & toutes,

Je connais le fait d'attribuer une macro à un raccourci du genre "Ctrl+Maj+lettre"; mais... :D
Je souhaiterais déclencher ma macro d'un clic gauche (souris) si touche "Alt" enfoncée; et cela, je ne sais pas faire :eek:
Pourriez-vous me venir en aide, s'il vous plait.
Je vous joint un fichier avec ma macro, pour que vous constatiez "la chose".
Avec mes Remerciements par avance, Halffy /.
 

Pièces jointes

  • Echéance à 90 jours.xls
    24 KB · Affichages: 52

tototiti2008

XLDnaute Barbatruc
Re : affecter macro à "Alt + clic gauche"

Bonjour Halffy, Bonjour Pierrot,

à ma connaissance, l'appui sur une touche en même temps qu'un clic ne peut s'effectuer que dans un évènement MouseDown, et la feuille de calcul n'a pas ce type d'évènement.
Donc je ne vois pas trop de solution...
 

Halffy

XLDnaute Occasionnel
Re : affecter macro à "Alt + clic gauche"

Bonjour Pierrot93, tototiti2008, le forum
Tout d'abord, Merci de vous êtes penchés sur ma requête...
Toutefois & par rapport à vos réponses, ma demande peut-elle trouver une solution tout de même ? Ou est-ce réellement impossible ?
Si maintenant cela devait être impossible, avez-vous une autre solution éventuelle à me proposer comme ça au pied levé ?
 

Pierrot93

XLDnaute Barbatruc
Re : affecter macro à "Alt + clic gauche"

Re, bonsoir toto

peut être une procédure événementielle, se déclenche à chaque changement de selection... A voir s'il y a lieu de contrôler la plage sur laquelle la procédure doit sexécuter.... Code à placetr dans le module de la feuille concernée...

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Value = Date + 90
End Sub

bonne soirée
@+
 

Halffy

XLDnaute Occasionnel
Re : affecter macro à "Alt + clic gauche"

Re Pierrot93,

Effectivement, cela marche à chaque fois que je clic sur la feuille; seulement, tu devines bien :rolleyes: que ma feuille ne se limite pas à cette fonction (sans vouloir te manquer de respect) /

En fait, il faudrait ajouter 2 conditions à la macro:

1. Détecter que la touche "Alt" est enfoncée, pour autoriser le déroulement de la macro.
2. Limiter l'action à la colonne "I"

Penses-tu que cela soit possible ?
 

Pierrot93

XLDnaute Barbatruc
Re : affecter macro à "Alt + clic gauche"

Re,

pour tester la colonne I :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 And Target.Column = 9 Then Target.Value = Date + 90
End Sub

Perso, pas de solution pour tester si la touche "ALT" est enfoncée...
 

Halffy

XLDnaute Occasionnel
Re : affecter macro à "Alt + clic gauche"

Re-bonjour à tous,

Donc, j'ai "légèrement" progressé dans mes recherches :D
En effet, je suis en mesure de:
1. Insérer la date du jour dans une cellule, par sollicitation d'un CommandButton
2. Insérer la date à échéance + 90j, par sollicitation du même CommandButton, & si touche "CTRL" enfoncée.
Reste un problème alors: Comment limiter cette action à la colonne "I" uniquement ? :eek:
Avec tous mes Remerciement, à nouveau / new Fichier ci-joint bien-sûr.
 

Pièces jointes

  • Echéance à 90 jours Bétâ.xls
    31 KB · Affichages: 46

tototiti2008

XLDnaute Barbatruc
Re : affecter macro à "Alt + clic gauche"

Bonjour Hallfy,

je ne connaissais pas GetAsyncKeyState

un essai

Code:
Declare Function GetAsyncKeyState Lib "user32" _
     (ByVal vKey As Integer) As Integer
Sub InsertionDate()
Dim Cellule As Range, CtrlApp As Boolean 'Déclaration de Cellule
    CtrlApp = (GetAsyncKeyState(17) = -32767)
    For Each Cellule In Application.Intersect(Selection, Range("I1:I65536"))
     If CtrlApp Then 'Détection touche "CTRL" enfoncée
         Cellule.Value = Format(Now + 92, "dd/mm/yyyy") 'alors Insertion Date du jour + 90 jours
         Else 'Sinon
         Cellule.Value = Format(Now, "dd/mm/yyyy") 'Insertion Date du jour
     End If
     Next
End Sub

Avec cette fonction on pourrait envisager ta première demande, peut-être...
 
Dernière édition:

Halffy

XLDnaute Occasionnel
Re : affecter macro à "Alt + clic gauche"

re,
Tototiti2008: Si j'applique te solution, la macro ne détecte plus la touche "CTRL" :(
Pierrot93: Peux-tu être plus explicite s'il te plait,car j'ai éssayé de faire ce que tu me demandes avant de poster, sans plus de résultat :eek:
Je précise que la fonction "GetAsyncKeyState" a été trouver sur le Net; vu mon petit niveau VBA, je n'aurais pu créer cette fonction tout seul.

Rectification Tototiti2008: apparemment il n'y a pas de problème, je re-regarde de plus près...
 

Discussions similaires