Notifications
Clear all

LOOP PARA CAIXA DE TEXTO VBA

5 Posts
3 Usuários
0 Reactions
1,101 Visualizações
(@ericsson)
Posts: 54
Trusted Member
Topic starter
 

Olá, pessoal!!

Sou novo no forum e no vba.

Porém tenho uma dúvida que não encontrei resposta em lugar algum.

Como fazer um loop para descarregar as informações de um formulário de forma automátiva, isto é, não ter que fazer uma conexão para cada caixa de texto!

Exemplo:

Tenho 20 textbox com o seguinte nome: GMBSB1, GMBSB2, GMBSB3, ..., GMBSB20.

Como posso fazer isto?

 
Postado : 03/04/2014 6:18 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não entendi o que considera "descarregar"
Mas genericamente para um loop em controles de formulario pode-se utilizar:

Private Sub tLoop()
Dim ctr As Control
For Each ctr In Controls
'todos os controles que iniciam com TextBox, e não seja o 5
    If ctr.Name Like "TextBox*" And ctr.Name <> "TextBox5" Then
    MsgBox ctr.Name
    End If
Next
End Sub
 
Postado : 03/04/2014 7:17 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

ericsson,

Bom Dia!

Veja um pequeno exemplo no arquivo anexo.

 
Postado : 03/04/2014 7:19 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Adaptando Reinaldo:

Private Sub tLoop()
Dim ctr As Control
dim cnt as long
cnt = 1
For Each ctr In Controls
    If ctr.Name Like "GMBSB*" Then
        CELLS(cnt,1).value = ctr.text
        cnt=cnt+1
    End If
Next
End Sub
 
Postado : 03/04/2014 8:10 am
(@ericsson)
Posts: 54
Trusted Member
Topic starter
 

vlw pessoal deu certo.

 
Postado : 03/04/2014 6:58 pm