VBA Excel - Détection de touche [Résolu]

Tweet75
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Dernière intervention
3 janvier 2012
- 29 nov. 2009 à 12:03 - Dernière réponse : us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
- 29 nov. 2009 à 14:43
Bonjour,

J'ai cherché d'autres post parlant de ce sujet mais je n'ai rien trouvé.
J'ai mis une textbox sur une feuille excel et je voudrais que lorsque l'on appuie sur la touche Entrée, un msgbox apparaisse. Voici mon code :


Private Declare Function SetCurrentDirectoryA Lib "kernel32" (ByVal lppathname As String) As Long

Private Sub textbox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
MsgBox (KeyAscii)
If KeyAscii = 13 Then
MsgBox ("enter")
Else
MsgBox ("pas enter")
End If
End Sub

J'ai beau appuyé sur la touche entrée mais rien ne se passe. Par contre si je change la valeur de 13 à 49(touche "1") par exemple, et la ca marche...
Quelqu'un pourrait me dire pourquoi ?

Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
jmf0
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Dernière intervention
5 avril 2013
- 29 nov. 2009 à 12:13
3
Merci
Bonjour,

1) apprends que VBA n'est pas VB6 (tu n'es pas dans le bon thème)
2) C'est d'autant plus gênant que les réactions d'une TextBox d'un UserForm VBA ne sont pas les mêmes que celles d'une TextBox VB6
3) utilise pour ta textbox l'évènement KeyDown ou l'évènement KeyUp pour "relever" l'emploi de la touche ENTER
4) c'est la dernière fois que je répondrai à une de tes questions si tu ne sais pas la poser dans le bon thème (VBA et non VB6). Sérieux

Merci jmf0 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de jmf0
Meilleure réponse
us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
- 29 nov. 2009 à 13:57
3
Merci
Bonjour,

Quelqu'un pourrait me dire pourquoi ?


C'est évident! La touche Enter permet de valider le contenu... Donc c'est une touche spécial pour la TextBox... voilà pourquoi!

Essayes ceci pour mieux comprendre comment t'en sortir :
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
MsgBox KeyCode
'if keycode=13 then ...
End Sub


Amicalement,
Us.

Merci us_30 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de us_30
Tweet75
Messages postés
87
Date d'inscription
jeudi 5 novembre 2009
Dernière intervention
3 janvier 2012
- 29 nov. 2009 à 14:22
0
Merci
Merci A vous le code fourni par US_30 marche parfaitement.

Je suis désolé je me suis trompé de section donc si un modérateur pouvait la déplacer dans la section VBA avec toutes mes excuses...

Merci encore
Commenter la réponse de Tweet75
us_30
Messages postés
2117
Date d'inscription
lundi 11 avril 2005
Dernière intervention
14 mars 2016
- 29 nov. 2009 à 14:43
0
Merci
Hum... de rien. Si tu pouvais le demander à un modérateur...

Amicalement,
Us.
Commenter la réponse de us_30

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.