XL 2016 VBA Application.Onkey et clavier numérique

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

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 !

Correction pour ajouter l'altération Maj, Ctl, Alt:
Code:
Sub a()
    'Alt + *
    Call OnKey("%", "{ENTER}", "")
    Call OnKey("%", "{ENTER}", "b")
End Sub

Sub b()
    MsgBox "Touche"
End Sub

'-----------------------------------
'Fonction de set ON / OFF d'un OnKey
'- Altération = "+" pour Shift
'               "^" pour Control
'               "%" pour Alt
'- Touche = touche de déclenchement
'           de la fonction
'- Fonction = fonction à déclencher
'          si vide, annule le OnKey
'https://docs.microsoft.com/fr-FR/office/vba/api/Excel.Application.OnKey
'-----------------------------------
Sub OnKey(ByVal Altération As String, ByVal Touche As String, ByVal Fonction As String)
    Dim i As Integer
    Dim Key As String
    Dim TabClavierNumérique() As String
    Dim TabClavierNumériqueKeyCodes() As String
    Const ClavierNumérique = "0 1 2 3 4 5 6 7 8 9 * + {ENTER} - , /"
    Const ClavierNumériqueKeyCodes = "96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111"
   
    'Traitement spécial des caractères correspondant à une altération Shift / Control / Alt
    If Touche = "+" Or Touche = "^" Or Touche = "%" Then
        Key = Altération & "{" & Touche & "}"
    Else
        Key = Altération & Touche
    End If
   
    'Set du OnKey sur la Key
    Application.OnKey Key, Fonction
   
    'Ajout de la Keys du clavier numérique
    TabClavierNumérique = Split(ClavierNumérique, " ")
    TabClavierNumériqueKeyCodes = Split(ClavierNumériqueKeyCodes, " ")
   
    For i = LBound(TabClavierNumérique) To UBound(TabClavierNumérique)
        If UCase(Touche) = TabClavierNumérique(i) Then Exit For
    Next i
   
    If i <= UBound(TabClavierNumérique) Then
        Key = TabClavierNumériqueKeyCodes(i)
        'Set du OnKey sur la Key du clavier numérique
        Application.OnKey Altération & "{" & Key & "}", Fonction
    End If
End Sub
 
Dernière édition:
- 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

Discussions similaires

Réponses
5
Affichages
327
Réponses
12
Affichages
560
Réponses
8
Affichages
641
  • Question Question
Réponses
1
Affichages
212
Retour