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

Efgé

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

Bonjour Halffy, tototiti2008 :), Pierrot93 :)
Pourquoi pas tout simplement:
Code:
[COLOR=blue]Sub[/COLOR] InsertionDate()
[COLOR=blue]Dim[/COLOR] Cellule [COLOR=blue]As[/COLOR] Range[COLOR=green] 'Déclaration de Cellule[/COLOR]
[COLOR=blue]If[/COLOR] ActiveCell.Column = 9 [COLOR=blue]Then[/COLOR][COLOR=green] 'Si la colonne est I[/COLOR]
    [COLOR=blue]For Each[/COLOR] Cellule [COLOR=blue]In[/COLOR] Selection
     [COLOR=blue]If[/COLOR] (GetAsyncKeyState(17) = -32767) [COLOR=blue]Then[/COLOR][COLOR=green] 'Détection touche "CTRL" enfoncée[/COLOR]
         Cellule.Value = Format(Now + 92, "dd/mm/yyyy")[COLOR=green] 'alors Insertion Date du jour + 90 jours[/COLOR]
         [COLOR=blue]Else[/COLOR][COLOR=green] 'Sinon[/COLOR]
         Cellule.Value = Format(Now, "dd/mm/yyyy")[COLOR=green] 'Insertion Date du jour[/COLOR]
     [COLOR=blue]End If[/COLOR]
     [COLOR=blue]Next[/COLOR]
[COLOR=blue]End If[/COLOR][COLOR=green] 'fin de la condition colonne I[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 

Halffy

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

Tototiti2008,

Effectivement, cela marche... :D mais si je déclenche la macro dans une autre colonne que "I" la macro se plante / N'y aurait-il pas un moyen de faire en sorte que la macro ne s'éxécute pas si nous ne nous trouvons pas en "I" ?
 

Halffy

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

Efgé, Bonjour

Excuses-moi, mais nos messages se sont croisé...
Merci pour ta contribution & d'accepter de te pencher sur mon problème /
D'autant plus que tu viens de répondre parfaitement à ma dernière demande :cool: / En effet si je sollicite la macro hors de la colonne "I", celle-ci est sans réponse ==> Parfait ;)

Pierrot93: Tous mes Remerciement pour ton implication linéaire / Indirectement tu m'as tout de même aidé (approche différente des constructions de macro).

Tototitti2008: Merci également pour cette "amorce" de "der-solution" / Merci pour le temps passé & le suivi; Bonne continuation.

Efgé: Encore Merci à toi aussi; "en effet" il ne manquait pas grand chose / et Bonne journée.

à moins d'une eventuelle requête :rolleyes: le sujet est clos :D
 
Dernière édition:

tototiti2008

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

Bonjour Pierrot, Bonjour Efgé,
Re,

mais si je déclenche la macro dans une autre colonne que "I" la macro se plante

en effet... désolé

Content que la solution d'Efgé te convienne

juste une remarque pour compléter : j'ai remarqué que si tu sélectionnes plusieurs cellules de la colonne I, par exemple, et que tu maintient Ctrl en cliquant sur le bouton, seule la cellule active a 90 jours de plus

C'est pour ça que dans mon code j'ai utilisé un booléen CtrlApp qui fait le test une fois au début...
 

Halffy

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

Bien vue, Tototiti2008 :D
En effet, si je sélectionne au moins 2 cellules juxtaposées de la colonne "I", que faudrait-il modifier à ma macro pour pour que l'échéance à 90j s'inscrive dans les 2 cellules?
En fait Tototiti, malgrés ton "+" je ne vois pas trop la différence :eek:
 
Dernière édition:

tototiti2008

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

Re,

essaye comme ça :

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)
If ActiveCell.Column = 9 Then 'Si la colonne est I
    For Each Cellule In Selection
     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 If 'fin de la condition colonne I
End Sub
 

Halffy

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

Tototiti2008...

Trop excellent :cool: / Comme quoi tout le monde peut apporter sa pierre à l'édifice :D
Toutefois, je ne comprends pas pourquoi cela n'a pas marché la première fois avec moi :rolleyes:
Encore tous mes Remerciements pour cette ultime "+" / Je te souhaite un bon appêtit, ainsi qu'une bonne journée.
(Ma femme crie famine à force de m'attendre :D)
 

Halffy

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

Pierrot93, Tititoto2008, Efgé,

Merci, Merci beaucoup pour votre aide; mon problème a maintenant trouvé réponses grâce à vos connaissances: Moi content :D
Sujet clos effectivement, donc / Bonne journée à tous & au plaisir.
Halffy /.
 

Discussions similaires

Statistiques des forums

Discussions
312 201
Messages
2 086 171
Membres
103 152
dernier inscrit
Karibu