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.
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.