Notifications
Clear all

LOOP PARA CAIXA DE TEXTO VBA

5 Posts
3 Usuários
0 Reactions
1,110 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
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 03/04/2014 7:17 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

ericsson,

Bom Dia!

Veja um pequeno exemplo no arquivo anexo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/04/2014 7:19 am
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
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