Soucis avec la touche Verr.Num

dudulleray -  
 dudulleray -
Bonjour a toutes et tous, Forum bonjour



Excel VBA

Voila avec le code ci-dessous, je saisi une date dans MonthView qui va s'incrire dans le TextBox4

j'utilise SendKeys "{ENTER}" pour sortir automatiquement du TextBox4

et le problème c'est que ca m'éteint le voyant du clavier touche (Verr. Num)

c'est assez désagréable car je n'ai pas les yeux rivés en permanence sur le dit voyant

Le but étant de sortir automatiquement du TextBox4 dès que j'ai cliquer sur mon choix de Date

Merci a tous pour votre aide et bonne journée a vous

Cdlt Ray


'*** SAISIE DE LA DATE DANS LE CALENDRIER (MonthView1)

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)

UserForm1.TextBox4.Value = Application.Proper(Format(UserForm2.MonthView1.Value, "dd/mmm/yyyy"))

DateExpiration = UserForm1.TextBox4.Value

Ws.Range("B27") = DateExpiration 'Stocke Date d'Expiration sur Feuil(Compte)= Ws

SendKeys "{ENTER}" 'Simule la touche "ENTER" pour sortir du TextBox4

Unload Me 'Sort de l'UserForm calendrier(MonthView1)

End Sub

10 réponses

  1. MrYAU31 Messages postés 4631 Statut Membre 1 630
     
    Bonjour,
    Je ne sais pas ce qui provoque ce souci (je n'ai pas réussi à reproduire) mais tu peux "tricher".
    Dans l'événement LostFocus de ton TextBox4, tu peux mettre un code comme
    Dim Num As Boolean
    'Récupère l'état du pavé Numérique
    If (&H1 And GetKeyState(vbKeyNumlock)) <> 1 Then 'si Verr Num eteint
    SendKeys "{NUMLOCK}" 'active Verr Num
    End If

    Tu peux aller un peux plus loin en stockant l'état de Verr Num sur l'évément GotFocus de TextBox4 pour remettre le même dans le LostFocus...
    If (&H1 And GetKeyState(vbKeyNumlock)) = 1 Then
    Num = True
    End If
    --------------------------------
    If (&H1 And GetKeyState(vbKeyNumlock)) <> Num Then
    SendKeys "{NUMLOCK}" 'active Verr Num
    End If
    1
  2. dudulleray
     
    Bonjour MrYAU31

    Merci pour ta réponse rapide et pour le code

    j'ai regarder le code proposé, mais la ca dépasse mon savoir, je ne sais pas faire

    ce type de code.

    Si toutefois tu avais un peu de temps, dit moi svp comment je pourrai faire pour réaliser le code.

    Merci a toi et une bonne journée

    Cdlt Ray
    0
  3. MrYAU31 Messages postés 4631 Statut Membre 1 630
     
    Tu veux faire quoi ? je t'ai déjà mis le code à ajouter dans tes événements.
    J'ai pas été assez gentil ? :-)
    0
  4. dudulleray
     
    Salut MrYAU31

    Si si tu es très gentil, je n'en doute pas une seconde, LOL , c'est juste que moi je
    ne sait pas plus que ca.

    Bon j'ai essayer le code ci dessous mais évidemment
    j'ai une erreur de compilation Sub ou Function non définie

    avec le mot GetKeyState en erreur

    je souhaite un bon app, je revoie ca après déjeuner, merci bien

    Ray


    Private Sub TextBox4_LostFocus()

    Dim Num As Boolean
    If (&H1 And GetKeyState(vbKeyNumlock)) <> 1 Then
    SendKeys "{NUMLOCK}"
    End If

    'If (&H1 And GetKeyState(vbKeyNumlock)) = 1 Then
    'Num = True
    'End If

    'If (&H1 And GetKeyState(vbKeyNumlock)) <> Num Then
    'SendKeys "{NUMLOCK}" 'active Verr Num
    'End If
    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. MrYAU31 Messages postés 4631 Statut Membre 1 630
     
    Oups, aurais-je oublier une déclaration ? :-)

    Ajoute
    Public Function GetKeyState  Lib "user32" (ByVal nVirtKey As Short) As Integer
    A ajouter directement dans la classe de ton Form, pas dans un Sub.
    0
  7. dudulleray
     
    Re Salut MrYAU31

    Je viens de faire de nouveau un essai avec le code en plus et j'ai une nouvelle erreur

    Erreur de compilation Type défini par l'utilisateur non défini

    j'ai mis le code du textbox4 a la suite du code 'USERFORM INITIALISE et la déclaration en tète bien sur

    Voila bonne Après midi

    Ray
    0
  8. MrYAU31 Messages postés 4631 Statut Membre 1 630
     
    Mais t'es en VBA en fait. J'avais pas percuté.
    Je cherche un peu...
    0
  9. dudulleray
     
    Oui en VBA avec excel 2007 et windows seven 32 bits
    0
  10. dudulleray
     
    Pour etre franc je ne comprends pas grand chose a ces codes.

    j'ai lu qu'effectivement on pourrai sans doute résoudre mon soucis mais je ne suis pas assez féru en vba pour coder ce dont j'ai besoin.

    Sans compter sur les risques encouru si je me plante d'après les avertissements ci dessous.

    Cet exemple est fourni à titre d'information pour les utilisateurs
    avertis. Si vous utilisez incorrectement des fonctions API, vous risquez
    de causer des erreurs au niveau de votre système d'exploitation et de
    devoir redémarrer votre ordinateur.

    Voila bon ne te casse pas la tète, c'est pas grave, mon programme fonctionne tout de mème

    Merci pour tes recherches Mr gentil LOL

    Ray
    0