FORMATAR TEXTBOX PARA SALVAR COMO NUMERO - Tomás Vásquez Fórum
FORMATAR TEXTBOX PARA SALVAR COMO NUMERO
silva_jmp
Registrado em: Sáb Dez 03, 2011 10:37 am
Mensagem por silva_jmp » Ter Jan 15, 2013 8:04 pm
Olá pessoal estou utilizando o código abaixo para preencher um textbox em valor monetário, mas quando salvo na planilha esta no formato de texto, e na planilha tem alguns controles utilizando formulas, onde buscas estes dados, não conseguindo fazer a operação por ser tratar de texto, já fiz algumas pesquisas em foruns utilizei algumas alternativas , mas não certo.
Observação: tenho vários txtboxes desta forma.
Private Sub txtDiaria_Exit(ByVal Cancel As MSForms.ReturnBoolean)
txtDiaria.Value = Format(txtDiaria, "R$ #.00")
Re: FORMATAR TEXTBOX PARA SALVAR COMO NUMERO
Mensagem por joseA » Qua Jan 16, 2013 9:40 am
Use a função de conversão CBbl()
Mensagem por Mauro Coutinho » Qua Jan 16, 2013 1:57 pm
Silva a rotina que postou só aplica a formatação no Textbox, como não postou a rotina que utiliza para lançar o valor do textbox para a planilha, alem da dica do Jose, você pode utilizar :
txtDiaria.Value = Format(txtDiaria.Value, "currency")
Range("A1") = CCur(Me.txtDiaria)
Mensagem por silva_jmp » Qua Jan 16, 2013 6:16 pm
Mauro e JoseA, obrigado pela dica, mas não consegui aplicar para meu problema, vou enviar o arquivo para vocês darem uma olhada.
MenuSuspenso1.rar
(819.41 KiB) Baixado 814 vezes
Mensagem por Mauro Coutinho » Qua Jan 16, 2013 8:06 pm
Silva, você podia ter simplificado o exemplo somente com a duvida, não fiz testes, mas no form cadastro você faz chamada para a rotina lsInserirStudent e na mesma tem a linha que lança naaba Dados:
Sheets("Dados").Cells(iTotalLinhas, 12).Value = .txtDiaria
Troque pela a abaixo e faça os testes :
Sheets("Dados").Cells(iTotalLinhas, 12).Value = CCur(txtDiaria)
ou Formate a celula apos o lançamento original :
Sheets("Dados").Cells(iTotalLinhas, 12).NumberFormat = "$##,###.#00"
Mensagem por silva_jmp » Qua Jan 16, 2013 9:32 pm
Mauro obrigado por atender, substitui conforme as duas dicas, mas não deu certo ainda esta salvando o numero armazenando como texto.
Mensagem por Mauro Coutinho » Qui Jan 17, 2013 8:34 am
Silva, faça antes uma cópia do seu arquivo, e depois limpe toda a formatação e dados e procure efetuar novos cadastros com as rotinas que passei, se ainda não der certo, faça um exemplo reduzido somente com a questão, ficará mais fácil de analizar o arquivo.
De uma olhada nos links abaixo, veja que temos pouca variação nas formatações :
http://www.ozgrid.com/forum/showthread.php?t=52850
http://stackoverflow.com/questions/5980 ... g-currency
Textbox em vba Excel...Formato de moeda
http://social.msdn.microsoft.com/Forums ... c62cf5ad6/
Se pesquisar no Google por : format textbox currency excel vba - encontrara varias questõers relacioandas.
Registrado em: Dom Ago 28, 2011 7:49 pm
Mensagem por Erikson » Dom Jun 10, 2018 9:13 pm
Bom esse post é bem antigo, mas como ele me ajudou diretamente hj, quero apenas confirmar que a dica do Mauro Coutinho foi certeira: "Range("A1") = CCur(Me.txtDiaria)", para que outros que tenham esse problema leve a sério a dica que realmente é funcional.
Eu havia criado um form com um textbox que colocava valor em moeda, porem quando clicava no botão para aplicar o valor a uma célula, a célula assumia o valor porem ele entrava como texto e não moeda (número), assim os cálculos de outras formulas e gráficos não ocorriam.
O meu textbox chamava-se Valor2, a rotina era assim: Range("A2").Value = Me.Value2.Valor
adaptado conforme a dica do Mauro, ficou: Range("A2") = CCur(Me.Valor2), ai sim, entrou na célula A2 como moeda.