Usuário com melhor resposta
vba-excel

Pergunta
-
Caros amigos internautas, tenho um userform com um cinco textbox, a intenção é a seguinte, quando eu uma textbox receber o foco para digitar um valor, automaticamente a cor "backcolor" fosse alterada, e quando passar para próxima textbox a cor da textbox anterior voltasse ao normal e a selecionada mudasse .
Srs, se alguém puder me ajudar, agradeço.
Respostas
-
Olá faça assim para cada textbox..
Private Sub TextBox1_Enter() Me.TextBox1.BackColor = vbYellow End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Me.TextBox1.BackColor = vbWhite End Sub
Se solucionar marque como resposta...
Até- Marcado como Resposta MauroMeira quarta-feira, 11 de fevereiro de 2009 19:23
-
Tem através de classe...Mas fiz um teste aqui e não terá como fazer no evento enter e exit do controle...
Mas tem outros eventos como change ou keypress....
Baixe a planilha com um modelo de classe no link
Criei 2 eventos e uma sub que funcionam para todos os textbox do form..
http://www.4shared.com/file/87337382/3fcac2f4/Classe.html
Neste exemplo a cor muda quando começa a alterar o textbox
Se solucionar marque como resposta...- Marcado como Resposta MauroMeira quinta-feira, 12 de fevereiro de 2009 22:35
Todas as Respostas
-
Olá faça assim para cada textbox..
Private Sub TextBox1_Enter() Me.TextBox1.BackColor = vbYellow End Sub Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Me.TextBox1.BackColor = vbWhite End Sub
Se solucionar marque como resposta...
Até- Marcado como Resposta MauroMeira quarta-feira, 11 de fevereiro de 2009 19:23
-
Obrigado EvangelistaLion, mais para várias caixas de texto, isto poderia ser simplificado, tipo, resumido, ou não tem jeito, devo por estes códidos para cada uma delas.
Agradeço pela sua resposta.
Abraço.
Mauro -
Tem através de classe...Mas fiz um teste aqui e não terá como fazer no evento enter e exit do controle...
Mas tem outros eventos como change ou keypress....
Baixe a planilha com um modelo de classe no link
Criei 2 eventos e uma sub que funcionam para todos os textbox do form..
http://www.4shared.com/file/87337382/3fcac2f4/Classe.html
Neste exemplo a cor muda quando começa a alterar o textbox
Se solucionar marque como resposta...- Marcado como Resposta MauroMeira quinta-feira, 12 de fevereiro de 2009 22:35
-
Obrigado EvangelistaLion, é o que eu procurava, valeu, resolveu meu problema.
Abraço
Mauro -
A sua explicação e exemplo foi perfeita. Quando saio do formulario e retorno os textbox ficam braco.Só que o eu uso o imput varia vezes sem sair do formulario eles permanecem amarelos como faço para mudar a cor para branco ao clicar OK. Na sua planilha classe e cadastro cliente exitem botões que chamam o userform. Como consigo fazer o botão ficar sem acesso. Assim minguem pode fazer alteração. Antecipadamente grato Adalberto.
-
Olá...Faça assim..
Se o usuário não digitou nada ou clicou em cancelar ou fechou ficará branco o text..If InputBox("Digite") <> "" Then
TextBox1.BackColor = vbWhite
End IfPara Desabilitar o botão.
CommandButton1.Enabled = False
Quaquer dúvida post denovo..
Se solucionar post denovo...
Por nada. -
Talvez eu não tenha me feito claro.
Na sua planilha Classe plan1 existe um botão denominado classe (que executa a userform) que esta protegido gostaria de saber como voce fez, ou seja protege-lo e desprotege-lo. Para que ninguem possa altera-lo.
Quanto ao textbox eu uso (Me.TxtNome = "") para limpar apos a entrada do conteudo.
Para o textBox ficar amarelo usei:
Private Sub CheckBox1_Change()
TextBox1.Value = 1
TextBox1.BackColor = RGB(0, 0, 255)
End Sub
Quando clico em SAIR uso:
Private Sub CheckBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.TxtNome.BackColor = RGB(250, 250, 255)
End Sub
Quando entro novamente os textbox estão brancos mas, quando clico em OK a UserForm permanece aberta para novas entradas de dados, os conteudos são limpos mas a cor amarela permanece, que comando devo incluir para a voltar a Branco.
Adalberto -
Olá...O botão na verdade não está protegido, só não está em modo de edição....Se você clicar em Exibir/Barra de ferramentas/Caixa de ferr. de controle aparecerá a barra, o 1º botão se chama modo de design, se estiver acionado o botão executa o código, se não estiver acionado o botão não executa o código e sim permite você altera-lo(código, posição, tamanho) etc...Agora para proteger seu código entre no Visual Basic(ALT+F11), clica no menu ferramentas, propriedades de VBAProject, clique na guia proteção, marque a opção bloquear projeto para exibição, escolha uma senha, confirma a senha e dá ok....Salve a planilha e entre denovo, agora para ver ou mudar o código precisa da senha.
No seu botão OK ponha esse código que todos textbox ficarão brancos
For Each ctl In UserForm1.Controls
If TypeName(ctl) = "TextBox" Then
ctl.BackColor = RGB(250, 250, 255)
End If
Next
Daniel...