Excel – Converter Texto para Número automáticamente

22Mai09

Já por várias vezes me aconteceu ter que importar um ficheiro em Excel para uma tabela no SQL Server e perder dados na importação devido a células que deveriam ser números, estarem assumidas como texto.

Quando isto acontece, o Excel dá-nos essa indicação e permite-nos converter esse mesmo texto para número.

Excel_Numero_Para_Texto

Quando temos poucos dados, esta correcção torna-se fácil e não perdemos muito tempo. O problema é quando temos um ficheiro com milhares de linhas e dezenas de colunas e temos que andar à procura de todas as células que possam ter esse erro.

Para me resolver esse problema, criei uma Macro que vai percorrer todas as células no intervalo definido e verificar se existe este erro, e caso exista vai corrigi-lo.

Para saber que determinada célula está neste estado, as funções IsText() e IsNumeric() terão que retornar um valor verdadeiro, e para corrigir basta alterar o valor da célula para o valor actual :)

A Macro pode ser algo como isto:

Sub ConverterTextoParaNumero()
On Error GoTo Erro

For Each celula In Range(“A:A”)
If IsNumeric(Range(celula.Address)) And Application.WorksheetFunction.IsText(Range(celula.Address)) Then
celula.Interior.ColorIndex = 36
celula.Value = celula.Value
End If
Next celula
MsgBox “Processo terminado”

Exit Sub
Erro:
MsgBox “Erro no processo”
End Sub

Este código vai percorrer todo o intervalo definido e alterar todas as células no estado de “Número copiado como texto” para um fundo amarelo e corrigir o erro.

About these ads


7 Responses to “Excel – Converter Texto para Número automáticamente”

  1. 1 Luís Gustavo Roma

    Desenvolvi um algoritimo espetacular para resolver este problema. E o melhor, não é necessário usar macro.
    Expertimente multiplicar o texto por 1. Garanto que o resultado é imediato! E para qualquer planilha com 1 milhão de linhas, garanto que não vai demorar mais do que 5 segundos para rodar.
    Try it!

  2. Luis, isso funciona, e eu actualmente já o faço, mas apenas para ficheiros que a informação nas colunas o permita fazer, ou seja, que apenas contenha números.
    Eu construi esta macro pois trabalho com ficheiros que contêm muitas colunas e em grande parte delas a informação tanto é texto como números na mesma coluna.
    E desta forma evita que ande a pesquisar em todas as colunas se a conversão foi feita correctamente.

  3. 3 Eugenio

    Como que eu faço para executar esta macro?
    Pois copiei o texto e digitei no VB, mas não dá certo.

  4. 4 njesus

    Não funciona,

    Apenas pinta de amarelo as células que estão no formato texto…

    Então e isto????

    “Este código vai percorrer todo o intervalo definido e alterar todas as células no estado de “Número copiado como texto” para um fundo amarelo e corrigir o erro. “

  5. 5 Nyarady

    Boa tarde;

    Eu tenho uma tabela que tenho que ficar preenchendo com algumas abreviações e depois somar quantas dessas abreviações tem de cada.
    Tem como falar uma formula que quando coloco a abreviação ele vai somando.
    Obrigado

  6. 6 Albezerra

    Pessoal tenho um paliativo sobre este tema, é só multiplicar o numero por 1 , ficando ( A1*1) o resultado já vai ser convertido, é só criar mais uma coluna esta resolvido seu problema. abraço

  7. 7 Wallace Farias

    Multiplicar por 1 resolveu.
    Valeu


Deixar uma resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

WordPress.com Logo

Está a comentar usando a sua conta WordPress.com Log Out / Modificar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Log Out / Modificar )

Facebook photo

Está a comentar usando a sua conta Facebook Log Out / Modificar )

Google+ photo

Está a comentar usando a sua conta Google+ Log Out / Modificar )

Connecting to %s


Seguir

Get every new post delivered to your Inbox.

%d bloggers like this: