none
valores numéricos salvos em formato texto VBA RRS feed

  • 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

    sexta-feira, 28 de janeiro de 2011 15:49

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/
    quinta-feira, 3 de fevereiro de 2011 13:06

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/
    segunda-feira, 31 de janeiro de 2011 15:54
  • 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
    segunda-feira, 31 de janeiro de 2011 16:03
  • Tente o seguinte

     

    For Each cell In [g1:g50000]
           If cell > "" Then

           numero = 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/
    segunda-feira, 31 de janeiro de 2011 18:10
  • Olá Mairon,

    Evite usar o objeto ActiveCell: http://www.ambienteoffice.com.br/excel/ferramenta_gravar_macro/


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    terça-feira, 1 de fevereiro de 2011 20:42
    Moderador
  • Rafael,  não deu certo não, os números continuam saindo como texto  :(

     

    alguma outra sugestão?

    quinta-feira, 3 de fevereiro de 2011 12:07
  • 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/
    quinta-feira, 3 de fevereiro de 2011 13:06
  • 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/
    segunda-feira, 28 de fevereiro de 2011 13:43