Notifications
Clear all

Formulário para data e valor monetário

14 Posts
3 Usuários
0 Reactions
2,280 Visualizações
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Olá,

Criei um formulário para inserir em uma planilha, entre outras informações, a data e o valor (em Real).

Acontece que mesmo digitando no formulário a data no formato dd/mm/aaaa, ao ser transportada para a planilha a data fica no formato m/d/aaaa.

Já no caso do valor monetário, se eu digitar um valor que não tenha centavos, o mesmo é transportado corretamente para a planilha, mas se tiver centavos então é transportado como texto para a planilha e deixa de fazer os cálculos corretamente.

Alguém sabe me dizer como fazer para que a data seja transportada como dd/mm/aaaa e o valor seja transportado corretamente como tal?

Obrigado.

 
Postado : 18/11/2014 7:48 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Já tentou nossa base?
http://www.google.com.br/cse?cx=partner ... gsc.page=1

Poste seu arquivo modelo!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/11/2014 7:58 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Se não pode posta seu modelo/exemplo; pelo menos indique como é a rotina de "gravação" dos dados do formulário na planilha??

Reinaldo

 
Postado : 18/11/2014 8:35 am
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Se não pode posta seu modelo/exemplo; pelo menos indique como é a rotina de "gravação" dos dados do formulário na planilha??

Segue a planilha com formulário. Coloquei na planilha explicações dos problemas que estão acontecendo.

Obrigado.

 
Postado : 18/11/2014 12:07 pm
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Se não pode posta seu modelo/exemplo; pelo menos indique como é a rotina de "gravação" dos dados do formulário na planilha??

Segue a planilha com formulário. Coloquei na planilha explicações dos problemas que estão acontecendo.

Obrigado.

Esqueci de tirar a senha do VBA. A senha é: 423489423

 
Postado : 18/11/2014 2:27 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Glaudemir, troque a sua rotina "Private Sub CommandButton_Adicionar_Click()" pela a abaixo, e refaça os testes:

Private Sub CommandButton_Adicionar_Click()

    Dim TextBox_PgCliente As Double
  
    'Cadastra os dados na planiha Pagamentos
    Sheets("Pagamentos").Visible = True
    Sheets("Pagamentos").Select
  
    'Seleciona a última linha preenchida da coluna A
    Range("A1048576").End(xlUp).Select

    'Vai para a próxima linha
    ActiveCell.Offset(1, 0).Select

    'CADASTRA OS NOVOS DADOS:
 
    'Transfere o valor da TextBox_Data do Form_Pagamentos
    'para a próxima célula vazia da Coluna A
    With ActiveCell
        .Value = Format(Form_Pagamentos.TextBox_Data, "DD/MM/YYYY")
        'Formata a data  no formato que quer
        .NumberFormat = "mm/dd/yyyy;@"
    End With

    'Transfere o valor da TextBox_Orçamento do Form_Pagamentos
    'para a coluna ao lado direito da célula ativa, na mesma linha (Coluna B)
    ActiveCell.Offset(0, 1).Value = Form_Pagamentos.TextBox_Orçamento.Value

    'Transfere o valor da TextBox_PgCliente do Form_Pagamentos
    'para a coluna ao lado direito da célula ativa, na mesma linha (Coluna C)
    'Converttemos o numero qdo Textbox que é texto para Numerico
    ActiveCell.Offset(0, 2).Value = CDbl(Format(Form_Pagamentos.TextBox_PgCliente, "#,###.#0"))

    'Mensagem confirmando o cadastramento com sucesso
    MsgBox "Pagamento cadastrado com sucesso.", _
    vbInformation, "Confirmação de lançamento"

    'Limpa todos os campos do formulário
      Form_Pagamentos.TextBox_Data.Value = Empty
      Form_Pagamentos.TextBox_Orçamento.Value = Empty
      Form_Pagamentos.TextBox_PgCliente.Value = Empty
  
    'O cursor fica piscando no campo "Data"
      Form_Pagamentos.TextBox_Data.SetFocus
  
End Sub

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/11/2014 5:30 pm
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Amigo Mauro, muito obrigado por sua ajuda.

Você já resolveu 50% da questão. A parte do valor monetário está funcionando de maneira correta, como eu precisava.

Mas a parte da data continua dando erro. Faça o seguinte teste: Insira a data 07/06/2014 pelo formulário. Na célula da planilha fica mostrando exatamente esse valor, no entanto, refere-se à data 06/07/2014. Ou seja, apesar de estar mostrando uma data na célula, na "cabeça" do excel essa data refere-se a outra. Na verdade é como se estivesse mm/dd/aaaa.

Vamos continuar tentando...

Abração e mais uma vez, muito obrigado por seu empenho.

 
Postado : 19/11/2014 9:24 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Na proposta do colega Mauro experimente alterar a linha .Value conforme abaixo:
.Value = Format(cdate(Form_Pagamentos.TextBox_Data), "DD/MM/YYYY")

Reinaldo

 
Postado : 19/11/2014 9:46 am
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Na proposta do colega Mauro experimente alterar a linha .Value conforme abaixo:
.Value = Format(cdate(Form_Pagamentos.TextBox_Data), "DD/MM/YYYY")

Amigo RLM, obrigado por sua participação, mas o resultado obtido foi semelhante ao anterior, ou seja, na célula aparece correto, mas na realidade continua sendo mm/dd/aaaa.

 
Postado : 19/11/2014 11:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Quanto ao valor monetário, faça os testes

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/11/2014 12:31 pm
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Estranho,veja no seu exemplo,nos teste que efetuei sem problemas

Reinaldo

 
Postado : 19/11/2014 1:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tambem estranhei, qual versão está utilizando ?

Quando ajustei o seu modelo eu havia deixado a instrução quase igual a do Reinaldo e a data estava invertendo, então alterei para formatar (formato Data) a celula apos o lançamento conforme abaixo :
With ActiveCell
.Value = Format(Form_Pagamentos.TextBox_Data, "DD/MM/YYYY")
'Formata a data no formato que quer
.NumberFormat = "mm/dd/yyyy;@"
End With

E a formatação só ficou correta apos inverter o tipo de formatação, por isso que ficou uma "DD/MM/YYYY" e outra "mm/dd/yyyy", e não tive nenhum problema, coisas de excel.

Não baixei nem fiz teste com o modelo do Reinaldo, mais tarde em casa vejo, mas é muito estranho.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/11/2014 1:30 pm
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Estranho,veja no seu exemplo,nos teste que efetuei sem problemas

Agora tudo está resolvido. A data e o valor monetário são lançados na planilha exatamente como digitados no formulário.

Muito obrigado a todos que colaboraram nesta solução.

 
Postado : 19/11/2014 3:00 pm
(@glaudemir)
Posts: 42
Eminent Member
Topic starter
 

Tambem estranhei, qual versão está utilizando ?

Mauro, estou usando o Excel 2013.

Agora tudo está resolvido e funcionando.

Para funcionar normalmente precisei excluir a coluna A (Data) e criá-la novamente, formatando-a como dd/mm/aaaa. Aí utilizei o último código enviado pelo RLM (post marcado como resolvido). Pronto! Tudo funciona como pretendido.

Obrigado a todos.

 
Postado : 19/11/2014 3:08 pm