none
VBA - Como passar um objeto Label como parametro para uma sub[RESOLVIDO] - RRS feed

  • Pergunta

  • Gostaria de saber como posso chamar uma sub que altera os valores de uma label (ex: caption, backcolor , etc) ao clicar na própria?

    Explicarei melhor:

    Tenho um layout (frame) com varias labels ao clicar na label abre um formulário onde altero o caption dessa label , o problema é que como tenho varias label gostaria de criar uma sub e no evento click de cada label eu chamaria essa sub passando a label em questão como referencia, e ao digitar a informação alterasse a caption dessa label que eu cliquei.

    Estou conseguindo fazer o q quero so que estou tendo que colocar no evento click toda a programação e ai a cada label tenho que ficar alterando "Label1.caption" para "Label2.caption" e assim sucessivamente.  

    Alguma dica?


    • Editado AlanLeandro terça-feira, 12 de janeiro de 2016 19:55
    segunda-feira, 11 de janeiro de 2016 22:45

Respostas

Todas as Respostas

  • Olá Alan, use a seguinte maneira:

    Sub Click_Label1(){
      Label1.Caption = 'does not work 
    }

    E para alterar a cor do background, use a seguinte maneira:

    Sub Click_Label1(){
    Label1.BackColor = RGB(51, 102, 255) 
    }


    If the answer was helpful vote

    • Sugerido como Resposta Jean LLopes terça-feira, 12 de janeiro de 2016 00:02
    terça-feira, 12 de janeiro de 2016 00:02
  • Na verdade meu problema é outro no evento click eu quero chamar uma sub que fica em um modulo.Exemplo:

    Sub Click_Label1(){
      alterarDados(Label1)
    }

    no modulo eu tenho as configurações e linhas de comando.

    Sub alteraDados(?){

    ?.Caption = ""

    ?.Backcolor = RGB(100,100,100)

    ...

    'essa sub tem varios comandos

    }

    Como essa sub tem vários comandos se eu não conseguir fazer assim eu tenho que colocar esse codigo inteiro em todos eventos click de todos os labels.


    terça-feira, 12 de janeiro de 2016 16:53
  • Function alterarDados(rotulo As Object)
    
    rotulo.Caption = ""
    
    rotulo.BackColor = RGB(100, 100, 100)
    
    End Function
    
    Private Sub Label1_Click()
    
    Call alterarDados(UserForm1.Label1)
    
    End Sub
    

    terça-feira, 12 de janeiro de 2016 17:24
  • Obrigado André exatamente isso que eu precisava agradeço mais uma vez a colaboração.

    Jean Obrigado tbm pela atenção.

    terça-feira, 12 de janeiro de 2016 19:55
  • Disponha Alan,

    Por favor marque como resposta !

    Um abraço 

    terça-feira, 12 de janeiro de 2016 19:56