IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VERR MAJ et VERR NUM dans userform [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut VERR MAJ et VERR NUM dans userform
    Bonjour à tous,

    Après plusieurs essais et quelques recherches sur internet, j'ai besoin de l'aide d'entre vous pour faire la chose suivante :

    Dans un userform je souhaite contrôler l'appui sur les touches "VERR MAJ" et "VERR NUM" pour savoir si elles sont enfoncées ou non.

    J'ai fais des essais avec des lignes de codes placées dans les procédures suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'et
    UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    mais je n'ai pas trouvé de solution ! Toute aide et la bienvenue.

    Merci à tous ceux qui ont prix le temps me lire, bon après-midi, cordialement.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Et pourquoi faire?

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    Bonjour mercatog et kiki29,

    Pour répondre à mercatog, le userform crée et utilisé pour demander le mot de passe à l'utilisateur du programme et les caractéres saisis sont masqués par des étoiles.

    Je souhaite crée une fonction qui indique à l'utilisateur s'il est actuellement en majuscule et si le pavé numérique est allumé.

    Merci pour ta réponse kiki29, le sujet que tu m'as communiqué a l'air de correspondre à mon besoin, j'essaierais ça cet après midi.

    Merci pour vos réponses, bonne journée.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    Bonsoir,

    Grâce au fil que m'a transmit kiki29, j'ai reussi à afficher verr num et verr maj dans mon userform lorsque l'on fait appel à celui ci via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub UserForm_Activate()
    mais je n'arrive pas à actualiser l'affichage du userform !

    L'affichage verr num et verr maj fonctionne uniquement lorsque le userform prend le focus.

    Comment faire pour actualiser continuellement l'affichage du userform?

    Merci à tous ceux qui ont pris le temps de me lire

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, via un Timer, à adapter à ton contexte

    Dans un module standard baptisé mTimer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Option Explicit
     
    Private Declare Function SetTimer Lib "User32" _
                                      (ByVal hWnd As Long, ByVal nIDEvent As Long, _
                                       ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
     
    Private Declare Function KillTimer Lib "User32" _
                                       (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
     
    Dim TimerID As Long
     
    Sub TimerOff()
        KillTimer 0, TimerID
    End Sub
     
    Sub TimerOn(Interval As Long)
        TimerID = SetTimer(0, 0, Interval, AddressOf Maj)
    End Sub
     
    Private Sub Maj()
        If NumLock = True Then UserForm1.LblNum.BackColor = vbGreen Else UserForm1.LblNum.BackColor = vbBlack
        If CapsLock = True Then UserForm1.LblCap.BackColor = vbGreen Else UserForm1.LblCap.BackColor = vbBlack
        If ScrollLock = True Then UserForm1.LblScro.BackColor = vbGreen Else UserForm1.LblScro.BackColor = vbBlack
    End Sub
    Pour l'UserForm 3 Labels baptisées LblNum,LblCap et LblScro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Private Sub UserForm_Initialize()
        If NumLock = True Then LblNum.BackColor = vbGreen Else LblNum.BackColor = vbBlack
        If CapsLock = True Then LblCap.BackColor = vbGreen Else LblCap.BackColor = vbBlack
        If ScrollLock = True Then LblScro.BackColor = vbGreen Else LblScro.BackColor = vbBlack
        TimerOn 100
    End Sub
     
    Private Sub UserForm_Terminate()
        TimerOff
        Unload Me
    End Sub
    et dans un module standard baptisé mKeyboard le code du Post #9 de http://www.developpez.net/forums/d65...age-majuscule/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Option Explicit
     
    Private Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As _
                                                                     Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Private Declare Function GetKeyState Lib "User32" (ByVal nVirtKey As Long) As _
                                         Integer
    Private Declare Function MapVirtualKey Lib "User32" Alias "MapVirtualKeyA" _
                                           (ByVal wCode As Long, ByVal wMapType As Long) As Long
     
    Public Const VK_NUMLOCK = &H90
    Public Const VK_SCROLL = &H91
    Public Const VK_CAPITAL = &H14
    Private Const KEYEVENTF_EXTENDEDKEY = &H1
    Private Const KEYEVENTF_KEYUP = &H2
     
    Public Sub SetKeyState(ByVal Key As Long, ByVal State As Boolean)
        keybd_event Key, MapVirtualKey(Key, 0), KEYEVENTF_EXTENDEDKEY Or 0, 0
        keybd_event Key, MapVirtualKey(Key, 0), KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
        If Key = 20 And State = False Then
            keybd_event 16, 0, 0, 0
            keybd_event 16, 0, 2, 0
        End If
    End Sub
     
    Public Property Get CapsLock() As Boolean
        CapsLock = GetKeyState(VK_CAPITAL) = 1
    End Property
     
    Public Property Let CapsLock(ByVal Value As Boolean)
        SetKeyState VK_CAPITAL, Value
    End Property
     
    Public Property Get NumLock() As Boolean
        NumLock = GetKeyState(VK_NUMLOCK) = 1
    End Property
     
    Public Property Let NumLock(ByVal Value As Boolean)
        SetKeyState VK_NUMLOCK, Value
    End Property
     
    Public Property Get ScrollLock() As Boolean
        ScrollLock = GetKeyState(VK_SCROLL) = 1
    End Property
     
    Public Property Let ScrollLock(ByVal Value As Boolean)
        SetKeyState VK_SCROLL, Value
    End Property
    Sur la feuille un bouton associé à Tst pour afficher l'UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
     
    Sub Tst()
        UserForm1.Show vbModal
    End Sub

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : Alimentation

    Informations forums :
    Inscription : Juillet 2011
    Messages : 32
    Par défaut
    Bonjour kiki29,

    J'ai suivi les instructions que tu m'as communiqué, ça fonctionne à merveille !

    Un grand merci à toi pour ton aide et merci aussi pour tes explications aussi précises et pertinentes, je suis grand débutant en vba et j'ai juste eux quelques lignes de code à modifier pour que tout fonctionne du premier coup !

    Cette fonctionnalité me tenait à coeur et grâce à toi elle est opérationnelle !

    C'est super, bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. raccourci clavier Verr MAJ et return false sous IE
    Par matperino dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/06/2009, 17h07
  2. Réponses: 8
    Dernier message: 01/10/2007, 15h19
  3. Réponses: 9
    Dernier message: 28/09/2007, 08h54
  4. [D7] Simuler l'appui sur la touche VERR MAJ ??
    Par fredfred dans le forum Delphi
    Réponses: 8
    Dernier message: 14/06/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo