Excel - Convertir celda de texto a formato de fecha

Referencias:
http://exceltotal.com/convertir-texto-a-formato-fecha-en-excel/
http://www.ayudaexcel.com/foro/excel-general-6/conversion-celda-texto-fecha-problemas-5952/

En ocasiones cuando importamos información desde otras fuentes de datos hacia nuestro archivo Excel, las fechas son importadas con un formato de texto que no podemos manipular correctamente por lo cual es necesario convertir texto a formato fecha en Excel para dejar los datos con un formato adecuado.

Algunos de los problemas más comunes al importar datos de fecha a Excel son los siguientes:

  • Los datos importados tienen espacios en blanco al inicio y final de cada fecha.
  • Las fechas a importar utilizan algún carácter no estándar en Excel para separar los meses y días. Por ejemplo, la fecha a importar tiene el valor 25=Ene=2012 en lugar de 25-ene-2012.
  • El formato de las fechas está pensado para otro país u otro sistema de fechas por lo que Excel no lo reconoce correctamente.
  • El formato de las fechas a importar es totalmente diferente al utilizado por Excel.

Lo normal es poder dar el formato directamente desde el apartado: Inicio/Celdas/Formato/Formato de celdas/Número

Seleccionamos 'Fecha' y aplicamos uno de los formatos propuestos, o bien seleccionamos 'Personalizada' y aplicamos el patrón deseado (aaaa/mm/dd).

Si todo va bien, con seleccionar las celdas a modificar y aplicar lo anterior ya tendríamos todo hecho, pero alguna que otra vez excel pasará de vosotros y al darle a aplicar la celda se quedará como si no hubierais hecho nada.

Es hora de buscar en Google y desesperados por ver que las típicas soluciones ofrecidas funcionan a todos menos a ti…

  • Utilizar la función FECHANUMERO
  • Utilizar fórmulas para ajustar el texto
  • Utilizar la conversión de texto en columnas

Encontré la manera de poder dar ese formato fecha (recordar que si tiene este formato el contenido de la celda estará a la derecha, a la izquerda sería texto), para luego poder tratar esa fecha a nuestro antojo desde el apartado: Inicio/Celdas/Formato/Formato de celda/Número.

Pasos:

1.- Habilitar pestaña Programador/Desarrollador

La pestaña Programador no se muestra de forma predeterminada, pero puedes agregarla a la cinta haciendo lo siguiente:

  • Haz clic en la pestaña Archivo.
  • Haz clic en Opciones.
  • Haz clic en Personalizar cinta de opciones.
  • En Personalizar la cinta de opciones y Fichas principales, activa la casilla Programador.

2.- Crear macro

  • Haz clic en la pestaña Programador.
  • Haz clic en el apartado Visual Basic.
  • Haz clic con el derecho sobre el libro en el que se encuentre la hoja con las celdas a modificar, por defecto Microsoft Excel Objetos.
  • Haz clic en Insertar/Módulo
  • Se creará la carpeta Módulos y aparecerá el nombre del módulo (Módulo 1) el cual puedes modificar. También se abre la ventana correspondiente a ese módulo en el que irá el código a ejecutar. Pega lo siguiente:
Sub RestablecerFormatoFechas()
Dim celda As Range

On Error Resume Next

For Each celda In Selection.Cells
If IsDate(celda.Value) = True Then celda = CDate(celda)
Next celda

End Sub
  • Guárdalo. Si partías de un fichero .xlsx te saldrá un aviso diciendo que ese formato no es compatible con las macros, haz clic en No y selecciona el tipo de fichero .xlsm.

Ahora ya puedes cerrar la ventana de las macros y volver a tu archivo excel con las celdas a cambiar.

3.- Aplicar macro

  • Selecciona las celdas que contienen las fechas a modificar.
  • Haz clic en la pestaña Programador.
  • Haz clic en el apartado Macros.
  • Selecciona la macro creada (RestablecerFormatoFechas) y dale a Ejecutar. Puede que te salga un aviso diciendo que se han bloqueado las macros y tienes que volver a abrirlo. Hazlo y verás que te sale otro aviso en el que te deja hablitarlo.

Verás que se ha aplicado correctamente si el contenido de las celdas está a la derecha.

4.- Dar formato a las fechas.

Ya podemos hacerlo de la forma más fácil desde: Inicio/Celdas/Formato/Formato de celda/Número.

« Windows

Si no se indica lo contrario, el contenido de esta página se ofrece bajo Creative Commons Attribution-ShareAlike 3.0 License