Ir ao conteúdo
  • Cadastre-se

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


igor.schirmer

Posts recomendados

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!
Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...