Notifications
Clear all

TABINDEX

6 Posts
2 Usuários
0 Reactions
1,728 Visualizações
(@ericsson)
Posts: 54
Trusted Member
Topic starter
 

Bom dia Pessoal!!

Tenho um formulário com vários Textboxs mas quando utilizo o TAB pra passar para o próximo não funciona corretamente, e quando falo que tenho vários textboxs é que tenho mais de 200, e para mudar um por um no propriedades fica um trabalho desgastante.

Como fazer esta organização por código VBA?

 
Postado : 06/04/2014 8:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Você tentou algo do tipo....

Sub AleVBA_11215()

For i = 1 To 200
InputTable.Controls("txt" & i).TabIndex = i - 1
Next i

End Sub

Att

 
Postado : 06/04/2014 8:18 am
(@ericsson)
Posts: 54
Trusted Member
Topic starter
 

Não tentei, mas vou implementar agora e já já vou to com a resposta.

Vlw!

 
Postado : 06/04/2014 9:27 am
(@ericsson)
Posts: 54
Trusted Member
Topic starter
 

Não deu certo, dá um erro de execução informando que o objeto é obrigatório '424'.

Como informar a o tipo Controls? Acho que é isso?

Os meus Texboxs estão nomeados como GMBSB, GMCEI, GMVAL, GMCG, etc.

 
Postado : 06/04/2014 9:43 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Eu não sei se tenho conhecimento o suficiente e se ´s possível mas, tente o código abaixo.

Private Sub CommandButton1_Click()
'Considerando que as TextBox, estão nomeadas como:
'TextBox1, TextBox2 ....TextBox200
    Dim i As Long
    Dim cCont As Control
    For Each oCont In Me.Controls
        If TypeName(cCont) = "TextBox" Then
            oCont.TabIndex = i
            i = i + 1
        End If
    Next oCont
End Sub

Att

 
Postado : 08/04/2014 8:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja no anexo, na abertura os textbox "assumem" a ordem de tabulação definida.
Apos o click no botaão e alterada a ordem de tabulação, durante a seção ela passa a ser considerada, porem na reabertura do formulario retorna na ordem anterior

 
Postado : 08/04/2014 9:43 am