Página 1 de 1

VBA - não reconhece campo como número

Enviado: 11 Set 2019 às 13:15
por marcoapm
Boa tarde,

Na planilha em anexo, inseri um formulário na guia BOLETIM DIÁRIO, porém ao inserir as informações e ir para o banco de dados na guia ABASTECIMENTOS, a coluna Valor abastecido, Litros e Preço/Litro o Excel não está entendendo como número.

Podemos perceber isso pois ao selecionar os dados no banco de dados, aparece apenas a contagem de células na barra inferior, e não mostra a soma e média normais que o excel sempre faz por padrão.

Alguém sabe qual o erro para que ao inserir a planilha já entenda como número?

Re: VBA - não reconhece campo como número

Enviado: 11 Set 2019 às 14:39
por osvaldomp
Acrescente Cdbl para extrair números dos campos numéricos, conforme exemplo abaixo.
CDbl(txt_valor.Value)

dica - não mescle células, pois células mescladas são inúteis, desnecessárias e podem provocar erros em fórmulas e em macros.

VBA - não reconhece campo como número

Enviado: 17 Set 2019 às 18:25
por marcoapm
Boa noite,

tentei utilizar esse código mas não deu certo, você conseguiria alterar na planilha e enviar funcionando? Estou começando a aprender VBA, por isso ainda tenho dúvidas básicas.

Re: VBA - não reconhece campo como número

Enviado: 18 Set 2019 às 08:17
por osvaldomp
marcoapm escreveu:Estou começando a aprender VBA, por isso ainda tenho dúvidas básicas.
1. abra o arquivo, tecle Alt+F11 e aplique duplo clique no nome do Form Abastecimentos
2. aplique duplo clique no botão Salvar e coloque o trecho abaixo no lugar do trecho correspondente existente
Código: Selecionar todos
...
Planilha8.Cells(linha, 2).Value = CDate(txt_abastecimentos.Value)
Planilha8.Cells(linha, 5).Value = txt_posto.Value
Planilha8.Cells(linha, 9).Value = txt_bairro.Value
Planilha8.Cells(linha, 14).Value = txt_cidade.Value
Planilha8.Cells(linha, 19).Value = CDbl(txt_valor.Value)
Planilha8.Cells(linha, 25).Value = CDbl(txt_litros.Value)
Planilha8.Cells(linha, 31).Value = CDbl(txt_preco.Value)
...
3. aplique duplo clique no botão Alterar e coloque o trecho abaixo no lugar do trecho correspondente existente
Código: Selecionar todos
...
ActiveCell.Offset(0, 1).Value = CDate(txt_abastecimentos.Text)
ActiveCell.Offset(0, 4).Value = txt_posto.Text
ActiveCell.Offset(0, 8).Value = txt_bairro.Text
ActiveCell.Offset(0, 13).Value = txt_cidade.Text
ActiveCell.Offset(0, 18).Value = CDbl(txt_valor.Text)
ActiveCell.Offset(0, 24).Value = CDbl(txt_litros.Text)
ActiveCell.Offset(0, 30).Value = CDbl(txt_preco.Text)
...