[VBA] : action sur la touche ENTER

: action sur la touche ENTER [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 26-01-2009 à 18:07:01    

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).  
 

Reply

Marsh Posté le 26-01-2009 à 18:07:01   

Reply

Marsh Posté le 26-01-2009 à 21:58:13    

Pas d'idée ?

Reply

Marsh Posté le 26-01-2009 à 22:30:15    

Reply

Marsh Posté le 27-01-2009 à 11:41:15    

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
Reply

Marsh Posté le 27-01-2009 à 13:23:21    

up

Reply

Marsh Posté le 27-01-2009 à 22:36:29    

?

Reply

Marsh Posté le 27-01-2009 à 23:00:31    

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.
Reply

Marsh Posté le 27-01-2009 à 23:12:27    

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

Reply

Marsh Posté le 28-01-2009 à 14:11:01    

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.
Reply

Marsh Posté le 28-01-2009 à 16:30:51    

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 ?
 

Reply

Marsh Posté le 28-01-2009 à 16:30:51   

Reply

Marsh Posté le 28-01-2009 à 16:35:55    

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

Reply

Marsh Posté le 28-01-2009 à 16:49:51    

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.
Reply

Marsh Posté le 28-01-2009 à 21:59:35    

OK merci je vais essayer ça ! :)

Reply

Marsh Posté le 29-01-2009 à 09:14:19    

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

Reply

Marsh Posté le 01-02-2009 à 12:03:03    

up

Reply

Marsh Posté le 02-02-2009 à 20:32:23    

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 !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed