OVH Cloud OVH Cloud

Naviguer de TextBox en TextBox

7 réponses
Avatar
Excel...lent
Bonjour la communauté,

J'ai une feuille dans laquelle j'ai disons 3 TextBox (TextBox1, TextBox2 et
TextBox3 )

Dans la feuille j'ai les 3 codes ( 1 par TxtBx ) suivant ( voir ci-dessous
après ma signature).

Bon cela fonctionne très bien je peux donc tabuler de TxtBx en TxtBx avec
les flèches <-- et --> du clavier et j'en suis content.

Aujourd'hui je n'ai que 3 TxtBx mais si demain j'en ai disons 40. N'y a t-il
pas une solution plus courte pour tabuler que d'avoir un code par TxtBx ?

Merci pour votre aide?

Amicordialement.

Marc

Les codes actuels :

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 38 Then
Exit Sub
End If
If KeyCode = 40 Then
GoTo GoDown
End If
Exit Sub
GoDown:
TextBox2.Select: TextBox2.Activate
End Sub

Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 38 Then
GoTo GoUp
End If
If KeyCode = 40 Then
GoTo GoDown
End If
Exit Sub
GoUp:
TextBox1.Select: TextBox1.Activate
Exit Sub
GoDown:
TextBox3.Select: TextBox3.Activate
End Sub

Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 38 Then
GoTo GoUp
End If
If KeyCode = 40 Then
Exit Sub
End If
Exit Sub
GoUp:
TextBox2.Select: TextBox2.Activate
End Sub

7 réponses

Avatar
CAP2
Salut,

juste une petite question :

pourquoi ne pas gérer pour chaque Textbox sa propriété TabIndex (attention
le 1er a un TabIndex à 0), et avancer l'un à l'autre par la touche
Tabulation, et reculer avec Shift + Tabulation ?

Veux-tu nécessairement du code ?

CAP2
Avatar
anonymousA
Bonjour,

module de classe, module de classe, module de classe !!!!! mais il faut
gérer l'affaire.

A+


Bonjour la communauté,

J'ai une feuille dans laquelle j'ai disons 3 TextBox (TextBox1, TextBox2 et
TextBox3 )

Dans la feuille j'ai les 3 codes ( 1 par TxtBx ) suivant ( voir ci-dessous
après ma signature).

Bon cela fonctionne très bien je peux donc tabuler de TxtBx en TxtBx avec
les flèches <-- et --> du clavier et j'en suis content.

Aujourd'hui je n'ai que 3 TxtBx mais si demain j'en ai disons 40. N'y a t-il
pas une solution plus courte pour tabuler que d'avoir un code par TxtBx ?

Merci pour votre aide?

Amicordialement.

Marc

Les codes actuels :

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 38 Then
Exit Sub
End If
If KeyCode = 40 Then
GoTo GoDown
End If
Exit Sub
GoDown:
TextBox2.Select: TextBox2.Activate
End Sub

Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 38 Then
GoTo GoUp
End If
If KeyCode = 40 Then
GoTo GoDown
End If
Exit Sub
GoUp:
TextBox1.Select: TextBox1.Activate
Exit Sub
GoDown:
TextBox3.Select: TextBox3.Activate
End Sub

Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If KeyCode = 38 Then
GoTo GoUp
End If
If KeyCode = 40 Then
Exit Sub
End If
Exit Sub
GoUp:
TextBox2.Select: TextBox2.Activate
End Sub





Avatar
Excel...lent
Salut CAP2,

J'y avais bien pensé puisque j'ai un usf dans une de mes applic où je vais
de tb en tb grâce à la touche TAB j'avais réglé l'ordre avec la fenêtre "
Ordre de tabulation " très pratique. Mais là je sèche. L'aide VBA n'est
franchement pas très clair pour ne pas dire incomplète...

Non sur ce coup là du code n'est pas indispensable.

Quand je clique droit sur mes tb, je n'ai pas la propriété "TabIndex" dans
les propriétés proposées.

Pour info : EXCEL 2000 et les textbox sont sur une feuille.

Bref je galèree un poil.

Si tu peux éclairer ma lanterne, je suis preneur et je te promet de ne pas
te demander de me l'écrire en japonais (cf un autre post concernant
l'écriture en vertical, où j'ai bien rit. J'ai bien dit rit et pas
moqué )....lol

Amicordialement.

Marc
Avatar
Excel...lent
Salut anonymousA,

Sans te déranger et si il te faut pas m'en faire un roman de 200 pages,
pourrais-tu m'expliquer comment tu vois la chose.

D'avance merci.

Amicordialement.

Marc
Avatar
Excel...lent
Salut à vous,

Hou ! Hou ! Me laissez pas tomber comme un vieille mer.. les gars.

Je sêche. Vous aviez l'air d'avoir de possibles soutions, pourriez-vous
m'aider ?

Muchas Gracias Amigos.

Marc
Avatar
Mytå
Salut le Forum

J'ai le même problème à résoudre (TabIndex TextBox sur feuille)

dans ThisWorkbook j'ai ceci :

Dim Buttons() As New Classe1

Private Sub Workbook_Open()

Dim ButtonCount As Integer
Dim Obj As OLEObject

' Creation de la liste
ButtonCount = 0
For Each Obj In ActiveSheet.OLEObjects
If TypeOf Obj.Object Is MSForms.TextBox Then
ButtonCount = ButtonCount + 1
ReDim Preserve Buttons(1 To ButtonCount)
Set Buttons(ButtonCount).ButtonGroup = Obj.Object
End If
Next Obj

End Sub

Dans un module de classe (Class1)

Public WithEvents ButtonGroup As MSForms.TextBox

Private Sub ButtonGroup_KeyUp(ByVal KeyCode As _
MSForms.ReturnInteger, ByVal Shift As Integer)

With Sheets("Feuil1")

If KeyCode = 38 Then
.TextBox1.Select
.TextBox1.Activate
End If

If KeyCode = 40 Then
.TextBox3.Select
.TextBox3.Activate
End If

End With

End Sub

Je veux éviter d'utiliser .textbox comme valeur

Merci

Mytå
Avatar
Mytå
Salut le Forum


Bonjour,

module de classe, module de classe, module de classe !!!!! mais il faut
gérer l'affaire.

A+



J'ai bien mis en exemple mon module de classe et je ne sais pas gérer
l'affaire,
tu as l'air bon anonymousA alors la solution c'est quoi.

Merci d'avance de la part de Mytå et Excel...lent