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

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
PODRIAS PONER UNA MACRO PERO PARA QUE SEA AL REVES QUE LO QUE ESTE CAPTURADO COMO NUMERO SE SEA TEXTO.
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
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
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!!!
Sin duda te puede servir. Te recomiendo que bajes mi addin, ya que ahí viene esta macro.
Tu base está en Excel, supongo.
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!!!
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?
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??
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.
He creado un post referente a tu consulta.
Dale una revisada para aplicarlo a tu problema.
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
EXCELENTE APORTACION, FELICIDADES!!!!!!!!
NO SABES CUANTO ME SIRVIO TU MACRO.
SALUDOS!!
Me da gusto que te haya servidio. De hecho yo la uso a diario, sobretodo porque genero muchos reportes desde una página Web.
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.
Hola. Por favor mándame un ejemplo de tu archivo para validarlo. Usa el siguiente link para subir el archivo: https://www.dropbox.com/request/6RO5oJMSRWjDfwbSWb4M
Hola Sergio, ya te hice llegar el archivo, pudiste echarle un vistazo??
Sí, mira, el problema es que las celdas que tienen números también tienen espacios de más al final de cada número, por eso Excel los sigue considerando como texto. La siguiente macro te ayudará a elimninar los espacios excesivo de las celdas: http://www.exceleinfo.com/vba/macro-eliminar-espacios-excesivos-en-excel/
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.
Muchas gracias por tu ayuda estimado.
Saludos,