none
Atualizar automaticamente meu userform conforme valores digitados e configurar userform para digitar como valor RRS feed

  • Pergunta

  • Tenho uma tela no userform onde gostaria de digitar dados no formato valor e transferir estas informações como valores para o excel, e não como texto.

    Tambem gostaria de saber se existe alguma forma de atualizar automaticamente as somas no userform sem ter que fazer isto apenas na hora que eu cadastrar a informação, porque neste caso tenho como cadastrar um codigo para puxar as informações da planilha para o userform e fazer um call sub inicialize quando eu apertar a função OK no command button fazendo um grande favor.

    Segue abaixo link do meu onedrive onte esta a planilha e uma tela em jpg com as informações mais explicadas.

    https://onedrive.live.com/#cid=0705F8B3DE5BB399&id=705F8B3DE5BB399%21105

    Agradeço desde já, aguardo ansiosamente e fico a disposição.

    Att,

    Fabio de Seixas

    terça-feira, 4 de março de 2014 00:07

Respostas

  • Oi Fabio, seu código ficou assim:

    Option Explicit
    
    Private Sub Excluir_Click()
        PlanDados.Cells(2, 2).ClearContents 'Fica mais simples chamar a planilha pelo nome.
        PlanDados.Cells(2, 3).ClearContents 'Note que o "Nome" não leva aspas, pois não é o nome exibido para o usuário
        PlanDados.Cells(3, 2).ClearContents 'É o nome da instância da planilha no projeto.
        PlanDados.Cells(3, 3).ClearContents 'Mesmo que o usuário mude o nome (label), o nome (instância) permanece.
    End Sub
    
    Private Sub Fechar_Click() 'fechar userform
        Unload Me
    End Sub
    
    Private Sub Limpar_Click() 'limpar tela de cadastro
        TextBox1.Value = ""
        TextBox2.Value = ""
        TextBox3.Value = ""
        TextBox4.Value = ""
        TextBox5.Value = ""
        TextBox6.Value = ""
        TextBox7.Value = ""
        TextBox8.Value = ""
        TextBox9.Value = ""
    End Sub
    
    Private Sub UserForm_Initialize() 'trazer informações constantes na planilha para o userform ao iniciar
        TextBox1.Value = PlanDados.Cells(2, 2).Value
        TextBox2.Value = PlanDados.Cells(2, 3).Value
        TextBox3.Value = PlanDados.Cells(2, 4).Value
        TextBox4.Value = PlanDados.Cells(3, 2).Value
        TextBox5.Value = PlanDados.Cells(3, 3).Value
        TextBox6.Value = PlanDados.Cells(3, 4).Value
        TextBox7.Value = PlanDados.Cells(4, 2).Value
        TextBox8.Value = PlanDados.Cells(4, 3).Value
        TextBox9.Value = PlanDados.Cells(4, 4).Value
    End Sub
    
    Private Sub CADASTRAR_Click() 'gravar informações digitadas
        If IsNumeric(TextBox1.Value) Then PlanDados.Cells(2, 2).Value = CDbl(TextBox1.Value) 'Veja o IsNumeric para segurança
        If IsNumeric(TextBox2.Value) Then PlanDados.Cells(2, 3).Value = CDbl(TextBox2.Value) 'E "CDbl(Arg)" para converter o texto para Double.
        If IsNumeric(TextBox4.Value) Then PlanDados.Cells(3, 2).Value = CDbl(TextBox4.Value) 'Porque o número pode ter vírgula, senão seria "CInt(Arg)"
        If IsNumeric(TextBox5.Value) Then PlanDados.Cells(3, 3).Value = CDbl(TextBox5.Value)
        Call UserForm_Initialize ' para atualizar a informação que foi cadastrada fiz um loop no Initialize para trazer as informações atualiadas da planilha, porem gostaria que as mesmas vissem de forma automatica, sem ter que fazer esta função.
    End Sub

    Alterei a planilha mas não tenho onde compartilhar com você. Posso te passar por e-mail se quiser, ou então permita-me alterar no OneDrive (estou como xxx@xxx.xxx - pode me mandar e-mail também que eu te respondo).

    Note que alterei o nome do "UserForm1" para "FromCadastro", do "Módulo1" para "Principal" e do "Plan1" (o nome da instância, não a label dela) para "PlanDados".


    • Sugerido como Resposta SammuelMiranda sexta-feira, 7 de março de 2014 11:09
    • Marcado como Resposta Giovani Cr sexta-feira, 7 de março de 2014 13:47
    • Editado SammuelMiranda sábado, 8 de março de 2014 22:40 "Apagado" endereço de e-mail pessoal
    quinta-feira, 6 de março de 2014 12:26

Todas as Respostas

  • Será que alguém pode me ajudar, fazendo um grande favor?
    quinta-feira, 6 de março de 2014 02:08
  • Oi Fabio, seu código ficou assim:

    Option Explicit
    
    Private Sub Excluir_Click()
        PlanDados.Cells(2, 2).ClearContents 'Fica mais simples chamar a planilha pelo nome.
        PlanDados.Cells(2, 3).ClearContents 'Note que o "Nome" não leva aspas, pois não é o nome exibido para o usuário
        PlanDados.Cells(3, 2).ClearContents 'É o nome da instância da planilha no projeto.
        PlanDados.Cells(3, 3).ClearContents 'Mesmo que o usuário mude o nome (label), o nome (instância) permanece.
    End Sub
    
    Private Sub Fechar_Click() 'fechar userform
        Unload Me
    End Sub
    
    Private Sub Limpar_Click() 'limpar tela de cadastro
        TextBox1.Value = ""
        TextBox2.Value = ""
        TextBox3.Value = ""
        TextBox4.Value = ""
        TextBox5.Value = ""
        TextBox6.Value = ""
        TextBox7.Value = ""
        TextBox8.Value = ""
        TextBox9.Value = ""
    End Sub
    
    Private Sub UserForm_Initialize() 'trazer informações constantes na planilha para o userform ao iniciar
        TextBox1.Value = PlanDados.Cells(2, 2).Value
        TextBox2.Value = PlanDados.Cells(2, 3).Value
        TextBox3.Value = PlanDados.Cells(2, 4).Value
        TextBox4.Value = PlanDados.Cells(3, 2).Value
        TextBox5.Value = PlanDados.Cells(3, 3).Value
        TextBox6.Value = PlanDados.Cells(3, 4).Value
        TextBox7.Value = PlanDados.Cells(4, 2).Value
        TextBox8.Value = PlanDados.Cells(4, 3).Value
        TextBox9.Value = PlanDados.Cells(4, 4).Value
    End Sub
    
    Private Sub CADASTRAR_Click() 'gravar informações digitadas
        If IsNumeric(TextBox1.Value) Then PlanDados.Cells(2, 2).Value = CDbl(TextBox1.Value) 'Veja o IsNumeric para segurança
        If IsNumeric(TextBox2.Value) Then PlanDados.Cells(2, 3).Value = CDbl(TextBox2.Value) 'E "CDbl(Arg)" para converter o texto para Double.
        If IsNumeric(TextBox4.Value) Then PlanDados.Cells(3, 2).Value = CDbl(TextBox4.Value) 'Porque o número pode ter vírgula, senão seria "CInt(Arg)"
        If IsNumeric(TextBox5.Value) Then PlanDados.Cells(3, 3).Value = CDbl(TextBox5.Value)
        Call UserForm_Initialize ' para atualizar a informação que foi cadastrada fiz um loop no Initialize para trazer as informações atualiadas da planilha, porem gostaria que as mesmas vissem de forma automatica, sem ter que fazer esta função.
    End Sub

    Alterei a planilha mas não tenho onde compartilhar com você. Posso te passar por e-mail se quiser, ou então permita-me alterar no OneDrive (estou como xxx@xxx.xxx - pode me mandar e-mail também que eu te respondo).

    Note que alterei o nome do "UserForm1" para "FromCadastro", do "Módulo1" para "Principal" e do "Plan1" (o nome da instância, não a label dela) para "PlanDados".


    • Sugerido como Resposta SammuelMiranda sexta-feira, 7 de março de 2014 11:09
    • Marcado como Resposta Giovani Cr sexta-feira, 7 de março de 2014 13:47
    • Editado SammuelMiranda sábado, 8 de março de 2014 22:40 "Apagado" endereço de e-mail pessoal
    quinta-feira, 6 de março de 2014 12:26
  • Fala ai Samuel, tudo joia?

    Se puder mandar tambem no meu email, fdeseixas@gmail.com eu agreceria ok.

    Agradeço mesmo pela força.

    sexta-feira, 7 de março de 2014 15:55
  • Já foi Fabio, se não chegou me avise

    PS: Fabio, se você nao quiser que outras pessoas vejam seu e-mail (pessoas que passem no forum por qualquer motivo) apague aquele comentário.

    sábado, 8 de março de 2014 22:38