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

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

4 réponses

Répondre au sujet
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 29 nov. 2009 à 12:13
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmf0
us_30 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 29 nov. 2009 à 13:57
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de us_30
Tweet75 87 Messages postés jeudi 5 novembre 2009Date d'inscription 3 janvier 2012 Dernière intervention - 29 nov. 2009 à 14:22
0
Utile
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 2117 Messages postés lundi 11 avril 2005Date d'inscription 14 mars 2016 Dernière intervention - 29 nov. 2009 à 14:43
0
Utile
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.