Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
TextBox armazena como texto
-
- Colaborador
- Mensagens: 27
- Registrado em: Sex Fev 04, 2011 4:41 pm
- Localização: São Paulo
TextBox armazena como texto
Pessoal, dei uma boa olhada no fórum e apliquei as sugestões, porém não armazena de jeito nenhum, envio a planilha para que verifiquem o que estou fazendo de errado.
Textbox esta armazenando como texto ao invés de número.
E porque a textbox de valores não acrescenta o zero quanto o preço da gasolina é R$ 1,70, ela fica R$ 1,7
Textbox esta armazenando como texto ao invés de número.
E porque a textbox de valores não acrescenta o zero quanto o preço da gasolina é R$ 1,70, ela fica R$ 1,7
- Anexos
-
- CONTROLE DE ABASTECIMENTO FORUM.7z
- (45.66 KiB) Baixado 228 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: TextBox armazena como texto
Wagner, por padrão um TextBox, como o nome ("Caixa de Texto") já "diz", sempre irá "armazenar/passar" seu conteúdo como Texto.
Se o conteúdo é um valor numérico e/ou data/hora, o mesmo deve ser formatado após inclusão.
Veja em seu projeto o TextBox Data, nomeado como "Caixa_data" e formatado durante a digitação para ter um visual como uma data; porem ser checar/questionar se é uma data valida:
O mesmo ocorre com os campos valores, por exemplo TexBox valor total, nomeada como: ==> "Caixa_valortotal", é formatada ao sair do controle (evento Exit):
Porem essa formatação ("#.##") informa/determina mostrar até duas casas, desde que cada casa tenha/seja um valor significante (>0).
Valor como 1,31 será exibido como R$ 1,31; porem 1,30 será exibido R$ 1,3 e valor 1,00 será exibido R$ 1,
Acredito que a melhor formatação para seu caso é: "#.00"
Valores como 1,31, 1,30 e 1,00 serão exibidos como R$ 1,31 / R$ 1,30 /R$ 1,00 respectivamente
Se o conteúdo é um valor numérico e/ou data/hora, o mesmo deve ser formatado após inclusão.
Veja em seu projeto o TextBox Data, nomeado como "Caixa_data" e formatado durante a digitação para ter um visual como uma data; porem ser checar/questionar se é uma data valida:
Código: Selecionar todos
Private Sub Caixa_Data_Change()
If Len(Caixa_data.Text) = 2 Then
Caixa_data = Caixa_data + "/"
End If
If Len(Caixa_data.Text) = 5 Then
Caixa_data = Caixa_data + "/"
End If
End Sub
Código: Selecionar todos
Private Sub Caixa_valortotal_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Formatar a Caixa em Valores
Caixa_valortotal = Format(Caixa_valortotal, "R$ #.##")
End Sub
Valor como 1,31 será exibido como R$ 1,31; porem 1,30 será exibido R$ 1,3 e valor 1,00 será exibido R$ 1,
Acredito que a melhor formatação para seu caso é: "#.00"
Código: Selecionar todos
Private Sub Caixa_valortotal_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Formatar a Caixa em Valores
Caixa_valortotal = Format(Caixa_valortotal, "R$ #.00")
End Sub
-
- Colaborador
- Mensagens: 27
- Registrado em: Sex Fev 04, 2011 4:41 pm
- Localização: São Paulo
Re: TextBox armazena como texto
E como eu formatado após inclusão como numero?
Eu vi num video que fazendo assim daria certo
Private Sub Caixa_quantidade_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Formata a caixa em Números
Caixa_quantidade = Format(Caixa_quantidade, "0")
End Sub
mas quando vou na planilha ta como texto e mesmo se eu for la e mudar para numero, não volta. eu tenho que clicar duas vezes ou selecionar a opção do erro indicado quando eu coloco o cursor em cima da celula.
Eu vi num video que fazendo assim daria certo
Private Sub Caixa_quantidade_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Formata a caixa em Números
Caixa_quantidade = Format(Caixa_quantidade, "0")
End Sub
mas quando vou na planilha ta como texto e mesmo se eu for la e mudar para numero, não volta. eu tenho que clicar duas vezes ou selecionar a opção do erro indicado quando eu coloco o cursor em cima da celula.
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: TextBox armazena como texto
Vamos lá;
"...Textbox esta armazenando como texto ao invés de número..."
Como "disse" anteriormente uma TextBox Sempre considera seu conteúdo como texto.
"...Eu vi num video que fazendo assim daria certo..."
A rotina comentada não formata a Text em números, mas sim a apresentação visual do conteúdo da TextBox como numero; internamente o valor do TextBox ainda é considerado texto.
"...mas quando vou na planilha ta como texto..."
Aqui temos uma nova duvida, não mencionada inicialmente; que e recorrente, neste e no demais fóruns que participo.
Ao "transferir" o conteudo da(s) Texbox(s) do formulário para a planilha, o Excel por vezes "tenta" converter o dado recebido para um valor conhecido (tipo data, numeros..) porem nem sempre esse reconhecimento é efetuado a contento.
Para que, ao gravar na planilha, os dados sejam considerados conforme se deseja/espera deve-se utilizar mecanismos de conversão, tipo cDec/cDbl para números / Cdate para datas( detalhes sobre essas funções veja o help VBA, com o cursor posicionado sobre a string/texto tecle F1)
experimente na rotina que insere na planilha utilizar +/- assim:
Cells(Linha, 9) = cdbl(Caixa_valorunit)
ou ainda
Cells(Linha, 9) = Caixa_valorunit *1
Obs.: Eventualmente valores formatados com "R$" / "U$" / "%" ... devem ter essas "siglas" retiradas, para uma correta conversão.
"...Textbox esta armazenando como texto ao invés de número..."
Como "disse" anteriormente uma TextBox Sempre considera seu conteúdo como texto.
"...Eu vi num video que fazendo assim daria certo..."
A rotina comentada não formata a Text em números, mas sim a apresentação visual do conteúdo da TextBox como numero; internamente o valor do TextBox ainda é considerado texto.
"...mas quando vou na planilha ta como texto..."
Aqui temos uma nova duvida, não mencionada inicialmente; que e recorrente, neste e no demais fóruns que participo.
Ao "transferir" o conteudo da(s) Texbox(s) do formulário para a planilha, o Excel por vezes "tenta" converter o dado recebido para um valor conhecido (tipo data, numeros..) porem nem sempre esse reconhecimento é efetuado a contento.
Para que, ao gravar na planilha, os dados sejam considerados conforme se deseja/espera deve-se utilizar mecanismos de conversão, tipo cDec/cDbl para números / Cdate para datas( detalhes sobre essas funções veja o help VBA, com o cursor posicionado sobre a string/texto tecle F1)
experimente na rotina que insere na planilha utilizar +/- assim:
Cells(Linha, 9) = cdbl(Caixa_valorunit)
ou ainda
Cells(Linha, 9) = Caixa_valorunit *1
Obs.: Eventualmente valores formatados com "R$" / "U$" / "%" ... devem ter essas "siglas" retiradas, para uma correta conversão.
-
- Colaborador
- Mensagens: 27
- Registrado em: Sex Fev 04, 2011 4:41 pm
- Localização: São Paulo