Soucis avec la touche Verr.Num

Fermé
dudulleray - 23 oct. 2013 à 10:27
 dudulleray - 23 oct. 2013 à 13:35
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

MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 23/10/2013 à 11:16
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
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
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 23/10/2013 à 11:15
Tu veux faire quoi ? je t'ai déjà mis le code à ajouter dans tes événements.
J'ai pas été assez gentil ? :-)
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 23/10/2013 à 12:06
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
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
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
23 oct. 2013 à 13:18
Mais t'es en VBA en fait. J'avais pas percuté.
Je cherche un peu...
0
Oui en VBA avec excel 2007 et windows seven 32 bits
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
23 oct. 2013 à 13:23
Avec ce lien, ça devrait être bon pour toi. Il y a des exemples ;-)
https://support.microsoft.com/fr-fr/help/462533
0
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