Hoy toca aprender algo de una función VB poco conocida: FileDateTime.
Función que nos permite dar respuesta a un usuario:
Lo interesante de esta función de VB es que nos devuelve un dato tipo Variant que indica la fecha y hora cuando se creó o modificó por última vez un archivo... precisamente el dato relevante que necesitamos para resolver nuestro problema: Abrir el fichero más reciente.
Insertamos el siguiente procedimiento 'Sub' en un módulo estándar:
Y listo, podemos ejecutar nuestra macro, que abrirá el fichero con la mayor fecha de modificación, es decir, la más reciente.
Función que nos permite dar respuesta a un usuario:
[...] ¿Cómo puedo abrir el archivo más reciente? Es que en la carpeta donde va a buscarlo va a haber varios que se llaman muy parecido, sólo cambia el final del nombre que será la hora de creación (*o7_35.xlsm, *10_28.xlsm, *18_13.xlsm)[...] |
Lo interesante de esta función de VB es que nos devuelve un dato tipo Variant que indica la fecha y hora cuando se creó o modificó por última vez un archivo... precisamente el dato relevante que necesitamos para resolver nuestro problema: Abrir el fichero más reciente.
Insertamos el siguiente procedimiento 'Sub' en un módulo estándar:
Sub AbrirFicheroMasReciente() Dim Ruta As String, archivo As String, ultArchivo As String Dim ultFecha As Date, UFM As Date 'fecha última modificación Ruta = "E:\excelforo\" 'controlamos la ruta es´te correctamente escrita, con el último separador \ If Right(Ruta, 1) <> "\" Then Ruta = Ruta & "\" 'definimos el tipo de fichero sobre el que trabajar 'cualquier fichero de Excel archivo = Dir(Ruta & "*.xls*", vbNormal) If Len(archivo) = 0 Then 'verificamos que existe algú nfichero de Excel en la carpeta MsgBox "Mala suerte... No existe ningún archivo de Excel en esta carpeta", vbExclamation Exit Sub 'salimos del procedimiento End If 'recorremos todos los ficheros de Excel existentes Do While Len(archivo) > 0 'la función de VBA FileDateTime 'Devuelve una Variant(Date) que indica la fecha y hora cuando se creó o modificó por última vez un archivo. UFM = FileDateTime(Ruta & archivo) 'comparamos con la última fecha revisada 'este condicional nos conduce a la fecha mayor, i.e., la más reciente If UFM > ultFecha Then ultArchivo = archivo ultFecha = UFM End If 'liberamos la variable y preparamos para el siguiente archivo archivo = Dir Loop 'acabamos abriendo el fichero con la fecha de modificación más reciente... Workbooks.Open Ruta & ultArchivo End Sub
Y listo, podemos ejecutar nuestra macro, que abrirá el fichero con la mayor fecha de modificación, es decir, la más reciente.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.