Ir para conteúdo
Fórum Script Brasil
  • 0

Loop For com nomes dos textos


Valcionei

Pergunta

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 para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...