Ir para conteúdo
Fórum Script Brasil
  • 0

converter números armazenados como texto em números com vba


Dioniton

Pergunta

Olá

Tenho um planilha que importa dados de um arquivo de texto, quando ocorre a importação dos dados a coluna de valores fica com números armazenado como texto. Então eu consigo converter os valores em números mas isto é feito manualmente. Como posso fazer isso só que com uma macro?

Att.

Dioniton

:wacko:

Editado por Dioniton
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Na importação está como você mencionou, mas ai descobri que o problema não está na importação mas quando eu retiro os valores de parte das células importadas.

Para retirar o valor das seguinte célula:

VALOR OPERADOR :---------3,20-------

OBS: onde está tracejado -------- na realidade são espaço quando vou postar a resposta é retirado os espaços por isto coloquei os traços

uso:

valor = LTrim(RTrim(Mid(valor_da_celula, 17)))

mesmo assim os valores ficam com um caracter que não consigo identificar no final do valor da célula e que a torna o número armazenado como texto.

Ao editar o valor da célula posiciono o cursor após o valor e ai pressiono a tecla delete, dai apaga o caracter oculto e torna o valor da célula um número.

como diz a Bozena do Toma lá da cá.

"dai tudo fica certo dai "

Mas como acertar isto para que não precise ficar editando as células ?

Editado por Dioniton
Link para o comentário
Compartilhar em outros sites

  • 0

Bom pessoal

"Matutei" bastante além de ter pesquisado por algumas funções no próprio excel consegui resolver o meu problema.

segue o código da solução do problema.

For Each cell In [b1:b500]
       If cell > "" Then
       numero = Str(cell.Value)
       cell.Activate
      ActiveCell.FormulaR1C1 = numero
    
  Else
  End If
  Next

Att.

Dioniton

Editado por Dioniton
Link para o comentário
Compartilhar em outros sites

  • 0
Bom pessoal

"Matutei" bastante além de ter pesquisado por algumas funções no próprio excel consegui resolver o meu problema.

segue o código da solução do problema.

For Each cell In [b1:b500]
       If cell > "" Then
       numero = Str(cell.Value)
       cell.Activate
      ActiveCell.FormulaR1C1 = numero
    
  Else
  End If
  Next

Att.

Dioniton

Por favor, me ajude, preciso converter texto em numero numa planilha e já tentei tudo que vi nestes posts e não consigo.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Lucinea

Seja bem vindo ao fórum!

você já tentou com a função =VALOR(A1)

Podemos tentar te ajudar, mas para facilitar poste a tua planilha num site gratuito como:

http://www.sendspace.com/

Depois cole o link da planilha aqui no fórum.

Um abraço.

Editado por Patropi
Link para o comentário
Compartilhar em outros sites

  • 0
Em 14/10/2009 at 14:44, Dioniton disse:

Bom pessoal

 

"Matutei" bastante além de ter pesquisado por algumas funções no próprio excel consegui resolver o meu problema.

 

segue o código da solução do problema.

 

 

 

For Each cell In [b1:b500]
       If cell > "" Then
       numero = Str(cell.Value)
       cell.Activate
      ActiveCell.FormulaR1C1 = numero
    
  Else
  End If
  Next

 

 

Att.

 

Dioniton

Estava com o mesmo problema. Deu certo pra mim tb! Obrigada!

Link para o comentário
Compartilhar em outros sites

  • 0

Sou totalmente leigo e bem iniciante em programação, então primeiramente agradeço a paciência nas explicações.

Tenho que converter uma planilha simples em arquivo TXT com delimitador do tipo "pipeline".

Com o código que repasso abaixo consegui realizar parte da necessidade, porém, necessito que os números estejam preenchidos com zero à esquerda... alguém pode me ajudar?

Como exemplo, coloco a tabela abaixo: (o título das colunas começam na segunda linha da planilha)

COD EVENTO HORAS VALOR
01234 213 00348 000000531
00265 008 00003 000000091
00326 213 00303 000000426
00349 214 00000 000017016
00292 213 00424 000000614
00298 214 00000 000012758

e o arquivo TXT deverá ficar com o seguinte formato:

01234|213|00348|000000531
00265|008|00003|000000091

...

O problema é que quando exporto, sai da seguinte forma:

1234|213|348|531
265|208|3|91

Ou seja, os "Zeros" da esquerda desaparecem.

Como deve colocar no Código VBA para resolver esse problema?

Segue abaixo o script que estou usando:

Sub Macro1()
'Determina o tamanho da planilha (considerando que a coluna "A" esta preenchida.
UltLin = Cells(Cells.Rows.Count, "A").End(xlUp).Row

'Abre o arquivo Saida
Open "C:\FOLHA.txt" For Output As #1

' Executa um loop da linha 3 até a ultima linha de dados

For i = 3 To UltLin
' Monta a linha
LinExp = Left(Cells(i, 1), 5)
LinExp = LinExp & "|" & Left(Cells(i, 3), 3)
LinExp = LinExp & "|" & Left(Cells(i, 4), 5)
LinExp = LinExp & "|" & Left(Cells(i, 5), 10)

' Grava a linha no arquivo
Print #1, LinExp

Next i

'Fecha o arquivo
Close #1

End Sub

 

Agradeço toda ajuda e atenção.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...