Formulário exibir o...
 
Notifications
Clear all

Formulário exibir ocultar valores da planilha

6 Posts
2 Usuários
0 Reactions
2,206 Visualizações
engeel2014
(@engeel2014)
Posts: 207
Estimable Member
Topic starter
 

Boa noite pessoal, estou com um problema.

Fiz um formulário exemplo do que quero. você digita na primeira textbox um numero de 10 dígitos então nas textbox 2 e 3 aparecem dados extraídos da planilha. Coloquei uma condição para que quando o valor for menor que 10 caracteres os campos das textbox 2 e 3 fiquem vazias. Quando digito 10 digitos os dados são buscados porém quando aperto a tecla "backspace" o formulário não se alterar as textbox 2 e 3 continuam com dados. Alguém pode me ajudar? abaixo código que usei:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

'TextBox1.MaxLength = 10

Range("a3").Value = TextBox1

If Len(TextBox1) = 10 Then


TextBox2 = Range("a1").Value
TextBox3 = Range("a2").Value

ElseIf Len(TextBox1) < 10 Then

TextBox2 = ""
TextBox3 = ""

End If

End Sub

Anexo planilha exemplo.

Lucélio Ferreira dos Santos
Eng. Eletricista
CREA: DF-7165/TD
[email protected]

 
Postado : 16/02/2017 4:18 pm
(@jpedro)
Posts: 111
Estimable Member
 

Engeel2014, boa noite.

Mude a sua declaração para Private Sub TextBox1_Change que o texto das outras TextBoxes se apagará com o backspace.

Abraços!

 
Postado : 19/02/2017 8:07 pm
engeel2014
(@engeel2014)
Posts: 207
Estimable Member
Topic starter
 

Boa noite JPedro,

Na planilha que havia anexado funcionou, porém quando altero meu projeto não funciona. Sabe me dizer o que pode ser? estou anexando o meu projeto para que possa verificar.

Obrigado.

Lucélio Ferreira dos Santos
Eng. Eletricista
CREA: DF-7165/TD
[email protected]

 
Postado : 02/03/2017 6:16 pm
(@jpedro)
Posts: 111
Estimable Member
 

Lucélio, boa noite.

Vi o seu arquivo. Montei o código abaixo, fiz um teste e acho que atendeu bem. Ele apaga o texto de todos os controles, com exceção do TexBox do CPF/CNPJ, ao pressionar o "Backspace" ou "Delete".
Insira como está abaixo ou faça alguma adaptação que desejar.

Private Sub txt_cpf_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If (KeyCode = 8 Or KeyCode = 46) Then '8 - Backspace | 46 - Delete
   For Each ctl In Me.Controls
        If (TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox") And ctl.Name <> "txt_cpf" Then
           ctl.Text = ""
        End If
     Next ctl
End If
End Sub

Abs!

 
Postado : 03/03/2017 5:34 pm
engeel2014
(@engeel2014)
Posts: 207
Estimable Member
Topic starter
 

Caro Pedro, Boa noite.

Agradeço muito pela ajuda. Muito obrigado pela sua atenção.

Funcionou certinho.

Aproveitando e abusando de sua boa vontade, não sei se percebeu no arquivo que enviei que limitei a quantidade de dígitos dependendo da escolha de CPF ou CNPJ, porém quando termino a digitação de CPF/CNPJ tenho que digitar mais um digito para que o formulário carregue os outros dados daquele CPF/CNPJ. Perceba que quando adaptar sua sugestão de código que ao pressionar o Backspace uma vez os dados somem, porém depois se digitar o digito apagado novamente os dados não aparecem, e tenho que digitar mais um digito, que não aparece, para que os outros dados sejam carregados.

Lucélio Ferreira dos Santos
Eng. Eletricista
CREA: DF-7165/TD
[email protected]

 
Postado : 04/03/2017 10:20 pm
(@jpedro)
Posts: 111
Estimable Member
 

boa noite, Lucélio. Td bem?

Depois da linha do seu código abaixo transcrita, se vc adicionar o KeyAscii = 0 acho que já resolve o seu problema. Agora, para a pesquisa dos dados ser feita sem precisar teclar um dígito a mais, eu recomendo vc alterar a linha abaixo e o restante que segue (abaixo da linha) para o evento change.

Primeiro caso:

If Me.OptionButton2.Value = True And Len(txt_cpf) = 18 Or Me.OptionButton3.Value = True And Len(txt_cpf) = 14 Then '
KeyAscii = 0

((((((Continuação do código))))))

Segundo caso (Evento Change):

Private Sub txt_cpf_Change()

If Me.OptionButton2.Value = True And Len(txt_cpf) = 18 Or Me.OptionButton3.Value = True And Len(txt_cpf) = 14 Then
'Cria variável que armazena os comandos SQL
    Dim ComandoSQL As String
    Dim id As String
    Dim resposta As String 'cria a variável resposta

((((((Continuação do código))))))

Testei os dois casos e funcionou certinho.

Abraços!

 
Postado : 05/03/2017 9:47 pm