Notifications
Clear all

Executar Loop em elementos do formulário

5 Posts
3 Usuários
0 Reactions
884 Visualizações
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Boa tarde galera.

Uma duvida rápida, meio perdido aqui com um userform monstro (mais de 100 textbox por aba). Estou tentando executar um loop em todas labels alterando o nome para o titulo de cada uma das colunas. Alguém saberia como declarar a variavel e ir alternando a cada loop? tentei algo assim, mais nem de longe acertei kkkk

Private Sub UserForm_Initialize()

Dim Lbl As Label

    For i = 1 To 3
   
       Set Lbl(i).Caption = "nome" & i
    Next

End Sub

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 16/11/2015 12:19 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

selmo,

Boa tarde!

Faça assim:

Private Sub UserForm_Initialize()
    Dim Lbl As Control
    Dim i As Long
    Dim Num As String
    For Each Lbl In UserForm1.Controls
        If Left(Lbl.Name, 5) = "Label" Then
            For i = 1 To Len(Lbl.Name)
                If IsNumeric(Mid(Lbl.Name, i, 1)) Then
                    Num = Num & Mid(Lbl.Name, i, 1)
                    Lbl.Caption = "nome" & Num
                    Exit For
                End If
            Next
            Num = ""
        End If
    Next
End Sub

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 : 16/11/2015 1:04 pm
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Existe uma forma de fazer o mesmo procedimento sem se utilizar de coleções? não sou muito bom ao que se refere a coleções....

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 16/11/2015 1:39 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Bem... eu não conheço.

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 : 16/11/2015 2:47 pm
(@eduribeiro)
Posts: 2
New Member
 

Ola
tente assim
For N = 1 To 3
Me.Controls("nome" & N).Caption = "nome" & N
Next

label1
label2
Me.Controls("label" & i)
só lembrando que o nome tem que ser igual
se os nomes forem diferente voce pode criar um array dos nomes e fazer loop no array

arraynomes(n)

For N = 1 To 3
Me.Controls(arraynomes(N)).Caption = "nome" & N
Next

 
Postado : 17/11/2015 5:38 am