Facebook Twitter Gplus Flickr Pinterest LinkedIn YouTube RSS
Home Excel vba Macro para convertir los números con formato de texto a número en Excel
formats

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.

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
 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
13 Comments  comments 
  • JOSWUIN

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

  • http://gravatar.com/alfredoladino Alfredo

    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

      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

  • Rolando

    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

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

  • Rolando

    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

      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?

  • Rolando

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

    • http://about.me/sergioacamposh sergioacamposh

      Aquí se debe investigar sobre hacer una consulta en Access, ya que Excel acepta 1 millón de datos. Creo que aquí Excel está sobrepasado para calcular esta cantidad de datos.

    • http://about.me/sergioacamposh sergioacamposh

      He creado un post referente a tu consulta.

      Dale una revisada para aplicarlo a tu problema.

  • Claudio

    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

    • http://about.me/sergioacamposh sergioacamposh

      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

  • Pingback: EXCELeINFO – Excel vba e información - Estadísticas del Blog 2012, lo más visitado()

Sistema Wordpress corriendo bajo... Windows Server 2008 R2
Follow

Get every new post delivered to your Inbox

Join other followers