Macro para convertir los números con formato de texto a número en Excel

Twittear este post

 Compartir en Facebook

El siguiente código hace la tarea de convertir los números reconocidos como texto, en el formato correcto. Aplica principalmente cuando importamos a Excel datos de alguna página Web o desde alguna aplicación externa, con una consulta. En mi experiencia, estos debería ser solucionado con la opción de formatear celda como número, pero muchas veces no sucede, así que debemos editar cada celda con F2, pero resulta una tarea imposible cuando tenemos muchos datos.

Ver video 3 maneras para convertir números con formato de texto a número

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Funciona para formatos correctos de número, hora, fecha, etc.

Aquí el código de la macro:

Sub ConvertirTextoANumero()
Dim celda As Range
Application.StatusBar = "Convirtiendo celdas seleccionadas a formato de número..."
For Each celda In Selection
    'Se evalua cada celda del rango y se hace la conversión
    celda.Value = CStr(celda)
Next celda
Application.StatusBar = False
End Sub

You may also like...

21 Responses

  1. JOSWUIN says:

    PODRIAS PONER UNA MACRO PERO PARA QUE SEA AL REVES QUE LO QUE ESTE CAPTURADO COMO NUMERO SE SEA TEXTO.

  2. Alfredo says:

    podrias explicarlo en español no con una explicacion computacional, no entiendo nada de lo que escribiste.. que hay que hacer, gracias

    mira tengo la cartola de banco la bajo o la copio a excel y el formato no deja cambiarlo

    • sergioacamposh says:

      Hola Alfredo. Esto se refiere al uso de una macro para convertir números que copias desde una página web (por ejemplo), pero Excel te lo toma como texto, haciendo imposible la tarea de sumar, restar, etc.

      Si tu versión de Excel es 2007 o 2010, te recomiendo bajar mi complemento desde esta misma página, y ahí viene la herramienta sin tener que hacer nada especial. El link es

  3. Rolando says:

    yo tengo una super base de datos de 2gb con 20 millones de datos todos son strings pero los necesito convertir a numérico para poder analizarlos, este código me sirve o que puedo hacer… gracias y saludos!!!

    • sergioacamposh says:

      Sin duda te puede servir. Te recomiendo que bajes mi addin, ya que ahí viene esta macro.
      Tu base está en Excel, supongo.

  4. Rolando says:

    tengo access 2010 y lo unico que se hacer son tablas, así que he tratado de meter el código pero me marca un error de no se ha definido el tipo definido por el ususario y me señala la primera línea de tu código.

    Y como necesito sacar transformadas de Fourier, mi base es un programa de análisis de datos llamado DIAdem.

    Saludos!!!

    • sergioacamposh says:

      El código funciona para Excel. Si tus datos están en Access, ahí dependerá del tipo de formato del campo donde tengas los números.
      Es en la otra aplicación que quieres convertir a texto? No prefieres copiar los datos a Excel?

  5. Rolando says:

    el problema es que cuando paso de access a excel me aparece un error de Se ha sobrepasado el límite de filas en la hoja; se han eliminadoInfracción de la regla de validación

    por que para copiar los datos solo puedo de 65 mil en 65 mil y como mencioné son aprox. 20 millones de datos así que tendría que copiar más de 300 veces para poder insertarlos a excel

    alguna idea de que puedo hacer??

  6. Claudio says:

    El macro funciona si la celda esta en Formato de celdaNumeroGeneral. si esta en Formato de celdaNumeroTexto, como hago para cambiarlo previamente a General?
    Uso Excel 2007
    Gracias.

    Claudio

    • Qué formato esperas, por que si los cambias a General, realmente no cambiaría nada, por que es un formato genérico. Si lo que deseas es convertirlos a texto, sería así:

      Sub ConvertirTextoANumero()
      Dim celda As Range
      Application.StatusBar = "Convirtiendo celdas seleccionadas a formato general..."
      For Each celda In Selection
      'Se evalua cada celda del rango y se hace la conversión
      celda.NumberFormat = "@"
      Next celda
      Application.StatusBar = False
      End Sub

  7. CESAR says:

    EXCELENTE APORTACION, FELICIDADES!!!!!!!!
    NO SABES CUANTO ME SIRVIO TU MACRO.

    SALUDOS!!

  8. Giovanni Espinal says:

    Hola Sergio, tengo un problema, llevé a cabo la macro para convertir texto a números pero no me da resultado, si se ejecuta la macro sin errores pero no cambia el formato, los númeors siguen como texto y no puedo hacer ninguna operación ni nada, ojalá puedas ayudarme.
    Saludos.

  9. steve soto says:

    Hola, tengo una duda… en la macro que presentas, estas convirtiendo de nuevo a texto? la funcion CStr no es para convertir algun dato a texto?
    Disculpa si es tonta la pregunta o quizas me falta aprender mas sobre vba.

    Gracias.

  10. Félix Antonio Picado Caballero says:

    Muchas gracias por tu ayuda estimado.

    Saludos,

  1. December 29, 2012

    […] Macro para convertir los números con formato de texto a número en Excel […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: