none
vba-excel RRS feed

  • 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.

    quarta-feira, 11 de fevereiro de 2009 16:21

Respostas


  • 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 
    Olá faça assim para cada textbox..
    Se solucionar marque como resposta...
    Até
    • Marcado como Resposta MauroMeira quarta-feira, 11 de fevereiro de 2009 19:23
    quarta-feira, 11 de fevereiro de 2009 17:29
  • 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
    quinta-feira, 12 de fevereiro de 2009 17:02

Todas as Respostas


  • 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 
    Olá faça assim para cada textbox..
    Se solucionar marque como resposta...
    Até
    • Marcado como Resposta MauroMeira quarta-feira, 11 de fevereiro de 2009 19:23
    quarta-feira, 11 de fevereiro de 2009 17:29
  • 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
    quarta-feira, 11 de fevereiro de 2009 19:22
  • 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
    quinta-feira, 12 de fevereiro de 2009 17:02
  • Obrigado EvangelistaLion, é o que eu procurava, valeu, resolveu meu problema.

    Abraço
    Mauro
    quinta-feira, 12 de fevereiro de 2009 22:35
  • 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.
    domingo, 14 de junho de 2009 17:24
  • 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 If

    Para Desabilitar o botão.

    CommandButton1.Enabled = False

    Quaquer dúvida post denovo..
    Se solucionar post denovo...
    Por nada.

    segunda-feira, 15 de junho de 2009 19:30
  • 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

    quarta-feira, 17 de junho de 2009 00:56
  • 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...
    quinta-feira, 18 de junho de 2009 13:31