Touches autorisées

Le
Jacky
Bonjour,
J'utilise actuellement ce code pour autoriser l'entrée restreinte d'un textbox
'--
Const TouchePermise = "0123456789"

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr(TouchePermise, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
Else
Me.CommandButton1.Enabled = True
Me.CommandButton1.BackColor = &HFF00& 'vert
End If
End Sub
'
Je souhaite la prise en compte de la touche "Suppr" et la touche "Retour arrière"
Le but étant de peinturlurer un bouton d'une couleur quand une de ces touches est appuyée.
Exemple simplifié ici
http://cjoint.com/?0BynxF0NCOK

Merci de la participation
--
Salutations
JJ
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #25244312
Bonjour,

Ajoute ceci au code de ton formulaire :

'-----------------------------------
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
'Touche supprimer = 46
'Touche Retour arrière = 8
If KeyCode = 46 Or KeyCode = 8 Then
Me.CommandButton1.BackColor = vbGreen
End If
End Sub
'-----------------------------------



MichD
---------------------------------------------------------------
Jacky
Le #25244532
Bonjour Denis

C'est ce que j'utilise actuellement.
Je pensais ....certainement à tort, pouvoir l'ajouter à l'instruction
TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Mais bon, je vais faire avec :-(

Merci pour ton soutien

--
Salutations
JJ


"MichD"
Bonjour,

Ajoute ceci au code de ton formulaire :

'-----------------------------------
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'Touche supprimer = 46
'Touche Retour arrière = 8
If KeyCode = 46 Or KeyCode = 8 Then
Me.CommandButton1.BackColor = vbGreen
End If
End Sub
'-----------------------------------



MichD
---------------------------------------------------------------

MichD
Le #25244622
| C'est ce que j'utilise actuellement.

Ce que tu utilises est : TextBox1_KeyPress

Je te suggère D'AJOUTER l'événement : TextBox1_KeyDown

Cela devrait fonctionner!


MichD
---------------------------------------------------------------
Jacky
Le #25244782
Re.

Oui, j'avais bien compris
Dans le fichier réel j'utilise déjà TextBox1_KeyDown de la même façon que tu le suggères
Je voulais savoir si je pouvais m'en passer et l'intégrer dans TextBox1_KeyPress
Cela devrait fonctionner!


Oui ca fonctionne


--
Salutations
JJ


"MichD"
| C'est ce que j'utilise actuellement.

Ce que tu utilises est : TextBox1_KeyPress

Je te suggère D'AJOUTER l'événement : TextBox1_KeyDown

Cela devrait fonctionner!


MichD
---------------------------------------------------------------

MichD
Le #25244802
Si tu as besoin d'intercepter les touches "Supprimer"
et "Retour arrière", tu n'as pas le choix des armes!
;-)

MichD
---------------------------------------------------------------
Jacky
Le #25257752
Hello Denis

Cela m'amène à un autre problème

un userfourm avec
2 combobox
5 textbox
4 CommandButton
Plusieurs label

Tous les tabstop à false sauf
combobox1
les 4 textbox
commandeBouton1

Avec la touche tab ou entrée la sélection passe bien entre ces 6 controles,
mais il arrive qu'une tabulation se fasse à l'intérieur du combobox ou à l'intérieur d'un textbox

Peut-on interdire cette tabulation à l'intérieur de ces controles sans affecter la tabulation entre les
controles
--
Salutations
JJ


"MichD"
Si tu as besoin d'intercepter les touches "Supprimer"
et "Retour arrière", tu n'as pas le choix des armes!
;-)

MichD
---------------------------------------------------------------

MichD
Le #25257842
As-tu essayé quelque chose comme ceci :

'---------------------------------------
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 9 Then
KeyCode = 0
Me.TextBox1.SetFocus 'Ou le nom du contrôle suivant
End If
End Sub
'---------------------------------------
Private Sub Textbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 9 Then
KeyCode = 0
Me.ComboBox1.SetFocus 'Ou le nom du contrôle suivant
End If
End Sub
'---------------------------------------

MichD
---------------------------------------------------------------
Jacky
Le #25258642
Merci Denis de m'avoir orienté vers la bonne direction
J'ai du bidouiller un peu, dans certain cas des textbox ne sont pas visibles (donc plantage)

'-------------------------
If KeyCode = 9 Then
KeyCode = 0
For i = TextBox1.TabIndex + 1 To 5
If Me.Controls("TextBox" & i).Visible = True Then
Controls("TextBox" & i).SetFocus
Exit Sub
Else
If Me.CommandButton1.Enabled = True Then
Me.CommandButton1.SetFocus
Else
Me.ComboBox2.SetFocus
End If
End If
Next
End If
'-------------------------
--
Salutations
JJ


"MichD"
As-tu essayé quelque chose comme ceci :

'---------------------------------------
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 9 Then
KeyCode = 0
Me.TextBox1.SetFocus 'Ou le nom du contrôle suivant
End If
End Sub
'---------------------------------------
Private Sub Textbox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 9 Then
KeyCode = 0
Me.ComboBox1.SetFocus 'Ou le nom du contrôle suivant
End If
End Sub
'---------------------------------------

MichD
---------------------------------------------------------------

Publicité
Poster une réponse
Anonyme