Twitter iPhone pliant OnePlus 12 PS5 Disney+ Orange Livebox Windows 11 ChatGPT

Touches autorisées

8 réponses
Avatar
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

8 réponses

Avatar
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
---------------------------------------------------------------
Avatar
Jacky
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" a écrit dans le message de news: kgd3u2$lrs$
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
---------------------------------------------------------------

Avatar
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
---------------------------------------------------------------
Avatar
Jacky
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" a écrit dans le message de news: kgdf3n$noe$
| 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
---------------------------------------------------------------

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

MichD
---------------------------------------------------------------
Avatar
Jacky
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" a écrit dans le message de news: kgdise$3qu$
Si tu as besoin d'intercepter les touches "Supprimer"
et "Retour arrière", tu n'as pas le choix des armes!
;-)

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

Avatar
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
---------------------------------------------------------------
Avatar
Jacky
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" a écrit dans le message de news: kgt59l$u71$
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
---------------------------------------------------------------