Ultima fecha de actualización de 1 archivo en excel

Doy las gracias anticipadas por ler mi pregunta y espero que me puedan ayudar, necesito saber como obtener la ultima fecha de actualizacion de un archivo de excel, lo anterior es pq estoy haciendo una macro donde pruebo con el sig codigo nomfile = ActiveWorkbook.DateLastModified, pero no funciona, esta propiedad no aparece activa en la lista para elegir, no se si tenga que habilitar alguna libreria o algo por el estilo.
Ojala que alguien me pueda decir como obtener la ultima fecha de actualización y si es necesario habilitar una librería como lo hago.

1 respuesta

Respuesta
1
La siguiente función devuelve la fecha y hora en que se modificó por última vez el fichero que se le pase como argumento:
Public Function UltimoAcceso(sFichero As String) As Date
    Dim objFS As Object, objFile As Object
    Set objFS = CreateObject("Scripting.Filesystemobject")
    Set objFile = objFS.GetFile(sFichero)
    UltimoAcceso = CDate(objFile.DateLastModified)
End Function
Por ejemplo:
msgbox ultimoacceso("C:\config.sys")
Para que funcione, es necesario haber establecido una referencia a la librería "Microsoft Scripting Runtime" desde Herramientas->Referencias (en el editor VBA).
Hola, muchas gracias por tu atención, mira como comentaba la macro que hice abr muchos archivos de una carpeta solo saco algunos datos y los agrego a un concentrado, en esos datos me gustaría saber como agregar la fecha de modificación de cada archivo que se va abriendo, ya agregue la referencia como me lo indicaste, ademas de la función y trate de adaptar el código a mi macro pero no tuve éxito, te pongo a grandes rasgos mi código esperandoq ue me puedas decir como hacerlo:
Dim MiLibro As String
Const MiDir As String = "D:\ARCHIVOS\"
MiLibro = Dir(MiDir & "*.xls"):
If MiLibro = "" Then
   mensaje de que no puede estar vacio
else
Workbooks.Open MiDir & MiLibro  --> quisiera la ultima fecha d ela modif de este archivo puesto q son muchos no puedo estar ruteando cada archivo y quisiera ver si se pudiera tan algo de simpkle como la linea de abajo o si me pudieras indicar como sria el proceso.
lasdatmodif= ActiveWorkbook.DateLastModified
MiLibro = Dir
Loop Until MiLibro = ""
Gracias tu atención y pronta respuesta, Saludos.
Lo único que tienes que hacer para averiguar la fecha de modificación de cada libro es llamar a la función UltimoAcceso poniendo como argumento el nombre del libro. Por ejemplo, para averiguar la fecha de modificación de C:\prueba.xls
Sub prueba()
    Dim lasdatmodif As Date
    lasdatmodif = UltimoAcceso("C:\prueba.xls")
    MsgBox lasdatmodif
End Sub
Lógicamente, es posible sustituir "C:\prueba.xls" por una variable de tipo cadena que contenga la ruta y el nombre del libro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas