Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
653 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] : action sur la touche ENTER

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] : action sur la touche ENTER

n°1843306
fannypoula​in
Posté le 26-01-2009 à 18:07:01  profilanswer
 

Bonjour,
 
J'ai un bouton "valider"  et "Annuler" dans ma macro.
Je voudrais que les mêmes actions soient effectuées quand on appuie sur les touches "ENTER" ou "Echap"  
 
Comment modifier le code ?
 
Pour l'instant j'ai :
 
 
Private Sub CommandButton1_Click()
 
 
' traitement
 
 
End Sub  
 
J'aimerais ne pas dupliquer le code (traitement).  
 

mood
Publicité
Posté le 26-01-2009 à 18:07:01  profilanswer
 

n°1843398
fannypoula​in
Posté le 26-01-2009 à 21:58:13  profilanswer
 

Pas d'idée ?

n°1843408
LePhasme
Les Belges domineront le monde
Posté le 26-01-2009 à 22:30:15  profilanswer
 
n°1843552
fannypoula​in
Posté le 27-01-2009 à 11:41:15  profilanswer
 

Merci pour ton aide.
 
j'ai réussi à coder le truc :
 

Code :
  1. Private Sub CommandButton3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2. If KeyCode = vbKeyEscape Then
  3.         'MsgBox "Echap"
  4. End If
  5. End Sub


 
Mais comment forcer la même action que CommandButton3_Click()  ?
 
On ne peut pas coder un truc du style  
Set CommandButton3_Click() = True ???


Message édité par fannypoulain le 27-01-2009 à 11:41:46
n°1843580
fannypoula​in
Posté le 27-01-2009 à 13:23:21  profilanswer
 

up

n°1843921
fannypoula​in
Posté le 27-01-2009 à 22:36:29  profilanswer
 

?

n°1843938
LePhasme
Les Belges domineront le monde
Posté le 27-01-2009 à 23:00:31  profilanswer
 

Si je me trompe pas tu peux faire un

Code :
  1. Private Sub CommandButton3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  2. If KeyCode = vbKeyEscape Then
  3.        'CommandButton3_Click
  4. End If
  5. End Sub


---------------
Instagram - Mon PVT en Australie.
n°1843942
fannypoula​in
Posté le 27-01-2009 à 23:12:27  profilanswer
 

Je vais essayer demain.
 
Mais pourquoi est on obligé de lier la commande à CommandButton3 ?
Si je mets un autre bouton, ça change quelques chose ?

n°1844218
LePhasme
Les Belges domineront le monde
Posté le 28-01-2009 à 14:11:01  profilanswer
 

Tu dois pouvoir le mettre sur le form aussi.
Si tu le mets sur un autre bouton, il "écoutera" les frappes clavier uniquement quand ce bouton aura le focus.


---------------
Instagram - Mon PVT en Australie.
n°1844291
fannypoula​in
Posté le 28-01-2009 à 16:30:51  profilanswer
 

Ok, c'est pour ça que ça ne marche pas alors.
 
Comment il faut faire pour que ça écoute pour l'ensemble de la fenêtre ?
 

mood
Publicité
Posté le 28-01-2009 à 16:30:51  profilanswer
 

n°1844295
fannypoula​in
Posté le 28-01-2009 à 16:35:55  profilanswer
 

Sinon, quand on met un bouton, savez vous comment on ajoute un commentaire qui s'affiche quand on passe dessus (comme dans Windows) ?

n°1844298
LePhasme
Les Belges domineront le monde
Posté le 28-01-2009 à 16:49:51  profilanswer
 

Normalement tu as un form_keypress event.
Mais tu dois activer le keypreview d'abord.
 
Pour le texte, c'est le tooltip, dans les propriétés du bouton.


---------------
Instagram - Mon PVT en Australie.
n°1844454
fannypoula​in
Posté le 28-01-2009 à 21:59:35  profilanswer
 

OK merci je vais essayer ça ! :)

n°1844515
fannypoula​in
Posté le 29-01-2009 à 09:14:19  profilanswer
 

Je n'ai pas tooltip dans les propriétés du bouton !

n°1845769
fannypoula​in
Posté le 01-02-2009 à 12:03:03  profilanswer
 

up

n°1846230
SuppotDeSa​Tante
Aka dje69r
Posté le 02-02-2009 à 20:32:23  profilanswer
 

Bonsoir
 
Pour ne pas avoir a dupliquer le traitement, il faut passer par un Sub ou une Fonction a part, puis l'appeler dans les differents evenements.
Ex :

Citation :

Sub toto() 'ton traitement externe
    ' debut traitement
    '
    '
    ' fin traitement
 
    MsgBox "toto"
 
End Sub

Private Sub CommandButton1_Click()
    Call toto 'la tu appelles le sub toto pour faire le traitement
End Sub

 
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    CommandButton1.ControlTipText = "Ton message d'infobulle"
End Sub

 
Private Sub UserForm_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
     
    If KeyCode = vbKeyEnter Then
        Call toto 'ici idem, si la touche est ENTREE, tu appelles le sub toto pour faire le traitement
    End If
 
End Sub


En rouge le sub Toto ('externe') qui fait le traitement, ici ca n'affiche qu'une boite de dialoge contenant "toto"
En bleu Qd on click sur le bouton ca appelle le sub Toto
En vert quand on passe la souris sur le bouton ca affiche une infobulle
En noir, si la touche entree est relachée ca appelle le sub Toto
 
Cordialement


Message édité par SuppotDeSaTante le 02-02-2009 à 20:36:06

---------------
Soyez malin, louez entre voisins !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] : action sur la touche ENTER

 

Sujets relatifs
[VBA Excel] Procédure redondante dans Userform[VBA] Remplissage de cellules très long en temps
programmer des dates sur VBA[ACCESS] Erreur de compilation requete VBA
Lister les différents champs d'un parametre d'une fonction. Possible ? modifier position texte apres action sur bouton
mettre action sur bouton flash[VBS] Comment simuler l'appui de la touche tab, windows et enter?
Gestion de saut de page ACCESS/VBA 
Plus de sujets relatifs à : [VBA] : action sur la touche ENTER


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR