Usuário com melhor resposta
valores numéricos salvos em formato texto VBA

Pergunta
-
Boa tarde,, tenho um user form q lança preço de venda e custo na planilha, porém quando o usuário coloca algum valor com "," como por exemplo 499,99 , na célula em q ela é inserida, sae como formato texto ,e sendo não aparece nos meus relatórios de tabela dinamica, tentei o seguinte código , ele até funciona se trabalhar com formato xlsx, todas as máquinas tem excel 2007, mas optamos por trabalhar sempre no formato xls, e no xls ele nao funciona, gostaria de saber se alguem tem uma explicação ou se há outra maneira de converter esses valores para números via VBA, o código é este
For Each cell In [g1:g50000]
If cell > "" Then
numero = (cell.Value)
cell.Activate
ActiveCell.FormulaR1C1 = numero
Else
End If
Next
Respostas
-
Mairon,
O ideal seria excluir as linhas(mesmo as em branco) da sua planilha de destino para remover a formatação.
E no formulário, no momento de salvar o número da planilha, utilize a função Cdbl().
Se quiser manter o seu código use o seguinte:
For Each cell In [g1:g50000]
If cell > "" Then
cell.NumberFormat = "0.00"
End If
Next
Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 16:13
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 16:13
Todas as Respostas
-
Mairon,
Acredito você tenha aresposta neste post.
http://social.msdn.microsoft.com/Forums/pt-BR/vbapt/thread/898e9a0b-1937-4e12-99b3-12ac715bc9e8
Não esqueça de marcar como resposta.
um abraço,
Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/ -
fala Rafael ! então , tem até um comentario meu nesse post ae, quando a sua dica, eu ja direcionei o userform pra uma planilha recem criada, e continua saindo assim, a única solução que achei foi ir la em painel de controle ,configuração de regios e idiomas, e colocar separador de milhares, alterando o o ponto pela vírgula, estilo formato americano, mas na minha opiniao é uma "gambiarra", deve ter alguma outra maneira
-
Tente o seguinte
For Each cell In [g1:g50000]
If cell > "" Thennumero = Replace((cell.Value),",",".")
cell.Activate
ActiveCell.FormulaR1C1 = cdbl(numero)
Else
End If
Next
Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/ -
Olá Mairon,
Evite usar o objeto ActiveCell: http://www.ambienteoffice.com.br/excel/ferramenta_gravar_macro/
Felipe Costa Gualberto - http://www.ambienteoffice.com.br -
-
Mairon,
O ideal seria excluir as linhas(mesmo as em branco) da sua planilha de destino para remover a formatação.
E no formulário, no momento de salvar o número da planilha, utilize a função Cdbl().
Se quiser manter o seu código use o seguinte:
For Each cell In [g1:g50000]
If cell > "" Then
cell.NumberFormat = "0.00"
End If
Next
Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 16:13
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 16:13
-
Bom dia Marion. Conseguiu resolver o problema? Se sim, marque a resposta para mantermos o fórum organizado.
um abraço,
Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/