Ir ao conteúdo
  • Cadastre-se

Tratamento de valores em VBA (excel)


Posts recomendados

ola,

 

Estou realizando uma programação em vba (excel) para realizar uma declaração a um ente federal. Meu problema é tratar os valores numericos (removendo as pontuações ("," e "."), por exemplo o valor 1285,88 deve virar 00000000128588. Pensei em subtituir a pontuação (Replace ( string1, find, replacement, [start, [count, [compare]]] )) e repitir os valores ("0") ate fechar as posições )Range("b1") = Application.WorksheetFunction.Rept(Range("a1"), 3)). Funcionou perfeitamente até obter valores inteiros ("262,00"), com isso ele entende como 262 e logo faz 00000000000262 deixando de ser 262,00 e passando a ser 2,62. 

 

Como posso contornar esta situação? 

 

Link para o comentário
Compartilhar em outros sites

Fabrício, boa noite

você pode usar a propriedade Text do Range (ao invés de Value - Default) para trazer o valor da célula como ele está aparecendo lá na célula, e não somente seu conteúdo numérico. Supondo que seu valor 262,00 esteja na célula A1 da Planilha1, uma forma de fazer seria assim:

 

Sub TrataValor()
   Dim ValNum As String
     ValNum = Worksheets("Planilha1").Range("A1").Text
     ValNum = Replace(ValNum, ",", "") 'Elimina a vírgula se houver
     ValNum = Replace(ValNum, ".", "") 'Elimina o ponto, se houver
     ValNum = Format(ValNum, String(14, "0")) 'Formata com 14 posições
End Sub

ValNum conterá então o resultado "00000000026200"

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!