Jump to content
Fórum Script Brasil
  • 0

Loop For com nomes dos textos


Valcionei
 Share

Question

Caros, tenho alguns registros no banco e preciso, conforme a seleção do usuário, exibir essas informações em objetos de texto, ao todo tenho 20 objetos na tela, estou tentando fazer um For com os nomes dos textos, mas sem sucesso, quero fazer o seguinte:

'Carrega valor do texto 1

TelaCadastro.sTexto_1.Caption = sValorTexto1

.

.

.

.

'Carrega valor do texto 20

TelaCadastro.sTexto_20.Caption = sValorTexto20

Para os 20 textos sem precisar repetir o código todas as vezes somente trocando o "índice" do texto, algo do tipo:

For i = 1 To 20

'Carrega valor do texto 1

TelaCadastro.sTexto_ & i &.Caption = sValorTexto & i

Next

Sei que o exemplo do loop for acima não funciona em vba, alguém tem alguma ideia para facilitar esse trabalho?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Crie um formulário com 5 Rótulos (Labels) chamados:

lblTexto1

lblTexto2

lblTexto3

lblTexto4

lblTexto5

Em seguida, cole o código abaixo na classe do formulário:

Private Sub UserForm_Initialize()
    Dim ctrl As Control
    Dim sValorTexto(1 To 5)
    Dim lValor As Long
    
    sValorTexto(1) = "Benzadeus"
    sValorTexto(2) = "Teste"
    sValorTexto(3) = "Felipe"
    sValorTexto(4) = "Costa"
    sValorTexto(5) = "Gualberto"
    
    For Each ctrl In Me.Controls
        If Left(ctrl.Name, Len("lblTexto")) = "lblTexto" Then
            lValor = Replace(ctrl.Name, "lblTexto", "")
            ctrl.Caption = sValorTexto(lValor)
        End If
    Next ctrl
End Sub

Link to comment
Share on other sites

  • 0
Crie um formulário com 5 Rótulos (Labels) chamados:

lblTexto1

lblTexto2

lblTexto3

lblTexto4

lblTexto5

Em seguida, cole o código abaixo na classe do formulário:

Private Sub UserForm_Initialize()
    Dim ctrl As Control
    Dim sValorTexto(1 To 5)
    Dim lValor As Long
    
    sValorTexto(1) = "Benzadeus"
    sValorTexto(2) = "Teste"
    sValorTexto(3) = "Felipe"
    sValorTexto(4) = "Costa"
    sValorTexto(5) = "Gualberto"
    
    For Each ctrl In Me.Controls
        If Left(ctrl.Name, Len("lblTexto")) = "lblTexto" Then
            lValor = Replace(ctrl.Name, "lblTexto", "")
            ctrl.Caption = sValorTexto(lValor)
        End If
    Next ctrl
End Sub

Valeu cara, entendi o código semana que vem vou jogar na minha aplicação, mas acredito que é exatamente isso que eu preciso.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.8k
    • Total Posts
      648.7k
×
×
  • Create New...