Ir ao conteúdo
  • Cadastre-se
igor.schirmer

Problema com Macro, apagar textbox apos preenchimento de formulário

Recommended Posts

Olá pessoal, só bem iniciante nessa coisa de programar no Excel, mas estou fazendo um estágio em um órgão público e usamos o excel para fazer cadastro das pessoas que são atendidas. O meu código é bem tosco, mas funciona, só falta um detalhe: quando é concluído não consigo limpar as textbox que foram preenchidas. podem me ajudar? segue o código que uso:

 

----

Sub cadastrar()
    Sheets("Banco").Select
    If IsEmpty(Range("Banco!A2")) Or IsEmpty(Range("Banco!B2")) Or IsEmpty(Range("Banco!C2")) Or IsEmpty(Range("Banco!D2")) Or IsEmpty(Range("Banco!E2")) Or IsEmpty(Range("Banco!F2")) Or IsEmpty(Range("Banco!G2")) Or IsEmpty(Range("Banco!H2")) Or IsEmpty(Range("Banco!I2")) Or IsEmpty(Range("Banco!J2")) Or IsEmpty(Range("Banco!K2")) Or IsEmpty(Range("Banco!L2")) Or IsEmpty(Range("Banco!M2")) Or IsEmpty(Range("Banco!O2")) Then
    Mensagem = MsgBox("Algum campo não foi preenchido!", vbExclamation, "Documento não será salvo")
    Sheets("Formulario").Select
    Exit Sub
    End If
    Range("U2").Select
    Range("U2") = Date
    Range("A2:U2").Select
    Selection.Copy
    Cells(Rows.Count, "A").End(xlUp).Offset(1) = Range("A2")
    Cells(Rows.Count, "B").End(xlUp).Offset(1) = Range("B2")
    Cells(Rows.Count, "C").End(xlUp).Offset(1) = Range("C2")
    Cells(Rows.Count, "D").End(xlUp).Offset(1) = Range("D2")
    Cells(Rows.Count, "E").End(xlUp).Offset(1) = Range("E2")
    Cells(Rows.Count, "F").End(xlUp).Offset(1) = Range("F2")
    Cells(Rows.Count, "G").End(xlUp).Offset(1) = Range("G2")
    Cells(Rows.Count, "H").End(xlUp).Offset(1) = Range("H2")
    Cells(Rows.Count, "I").End(xlUp).Offset(1) = Range("I2")
    Cells(Rows.Count, "J").End(xlUp).Offset(1) = Range("J2")
    Cells(Rows.Count, "K").End(xlUp).Offset(1) = Range("K2")
    Cells(Rows.Count, "L").End(xlUp).Offset(1) = Range("L2")
    Cells(Rows.Count, "M").End(xlUp).Offset(1) = Range("M2")
    Cells(Rows.Count, "N").End(xlUp).Offset(1) = Range("N2")
    Cells(Rows.Count, "O").End(xlUp).Offset(1) = Range("O2")
    Cells(Rows.Count, "P").End(xlUp).Offset(1) = Range("P2")
    Cells(Rows.Count, "Q").End(xlUp).Offset(1) = Range("Q2")
    Cells(Rows.Count, "R").End(xlUp).Offset(1) = Range("R2")
    Cells(Rows.Count, "S").End(xlUp).Offset(1) = Range("S2")
    Cells(Rows.Count, "T").End(xlUp).Offset(1) = Range("T2")
    Cells(Rows.Count, "U").End(xlUp).Offset(1) = Range("U2")
    ActiveSheet.Paste
    Range("A2,B2,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2,S2,T2,U2").ClearContents
    Sheets("Formulario").Select
    MsgBox "Pronto!"
    End Sub
 
--------
 
Eu tentei com TextBox.Value = "" e nada... também outras combinações que encontrei em outros fóruns.... mas nada adiantou....
 
As ComboBox se limpam automaticamente quando as células a que estão vinculadas são limpas, o problema é só as textbox mesmo.
 
Outra coisinha: tem o   Range("U2") = Date para definir a data, ele funciona no primeiro cadastro, mas nos demais vem uns números aleatórios.....
 
Se tiverem dicas de como fazer funcionar melhor, tudo é bem vindo. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ia ser bom se tivesse todo o código, são quantas textbox?

 

Pra limpar UMA textbox o comando é:

TextBox1 = ""

ou

TextBox1.Value = ""

 

Mas tem que ver onde você irá colocar essas informações, por isso disse sobre o código todo, se puder anexar a pasta de trabalho é ainda melhor (exclui antes os dados dos clientes e cria uma cópia)

 

Tem um código para apagar todas as textbox de uma só vez, mas teria que ver o código para inserir ele direito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×