Usuário com melhor resposta
VBA - Como passar um objeto Label como parametro para uma sub[RESOLVIDO] -

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
Respostas
-
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
- Sugerido como Resposta André Santo terça-feira, 12 de janeiro de 2016 17:24
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quarta-feira, 13 de janeiro de 2016 17:16
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
-
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.
-
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
- Sugerido como Resposta André Santo terça-feira, 12 de janeiro de 2016 17:24
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator quarta-feira, 13 de janeiro de 2016 17:16
-
-