Macro que convierto números que salen con formato texto en formato numérico para poder hacer cálculos

Se trata de una importación en la que los números que importa, lo hace como texto y no se pueden hacer cálculos.

Lo que se necesita es que mediante una macro, los convierta en número con el que se puedan hacer cálculos.

1 respuesta

Respuesta
1

. 13.03.17 #Convertir un texto a valor/número

Buenas tardes, Carlos

Efectivamente, las importaciones suelen traer los números como texto.

Te compartiré un par de soluciones para resolverlo.

Para cualquiera de ellas, primero asegurate de eliminar cualquier separador de miles (reemplazandolos por "") y que el separador de decimales sea el que tienes en tu configuración

Hay una forma simple de convertirlos a valores en tres pasos:

  1. Copia cualquier celda vacía que tengas en tu hoja.
  2. Selecciona el rango de números a convertir
  3. Con botón derecho del mouse sobre ese rango, elije Pegado Especial y luego marca las opciones "Valores" y "SUMAR"

Listo. Con este simple procedimiento tendrás los textos convertidos a número.


Pero como solicitaste una macro, esta rutina depurará un listado desde la celda que le indiques al inicio del código:

Accede al Editor de VBA (Atajo: Alt + F11), allí inserta un módulo (Insertar-Módulo) y pega el siguiente código:

Sub Txt2Valor()
Dim Celda As Range
Inicelda = "A1" ' primera celda de rango a modificar
'
UltFila = Range(Left(Inicelda, 1) & Rows.Count).End(xlUp).Row
For Fila = 0 To UltFila
    If IsNumeric(Val(Trim(Range(Inicelda).Offset(Fila).Value))) Then
        On Error Resume Next
        Range(Inicelda).Offset(Fila).Value = Val(Trim(Range(Inicelda).Offset(Fila).Value))
        Err.Clear
        On Error GoTo 0
    End If
Next
End Sub

Coméntame si con estas soluciones resuelves lo que necesitas -y, en tal caso, agradeceré que califiques mi contribución- o escribeme de nuevo aquí, si necesitas más apoyo con esto.

Un abrazo

Fernando

.

Hola Fernando

La rutina funciona perfectamente, salvo que elimina los decimales.

Mira si por favor lo puedes retocar.

Muchas gracias

.

Buenas, Carlos

Es extraño, porque precisamente la rutina coloca el mismo separado de decimales que tengas de acuerdo a tu configuración regional.

En mi caso, el separador de decimales es el punto.

Entonces, como tu archivo original vino así:

Noté que el separador que viene es la coma.

Así, la rutina dejó esto:

Como verás, quitó el separador de miles y dejó los decimales correspondientes.

Aparentemente tu Configuración regional es diferente y tu separador de decimales es, coincidentemente, la coma.

En cualquier caso, la versión que te acabo de enviar contempla -en principio- cualquiera de ambos casos.

Abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas