Excel – Converter Texto para Número automáticamente

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.