Macro
Pase los nombre a español haber si solo explicarme
'Este es un procedimiento de usuario al que hay que pasarle un
'argumento Ruta, el cual cotendra la ruta del archivo del cual
'queremos obtener información
Public Sub MostrarInformacionAccesoArchivo(ByVal Ruta As String)
Dim SistemaArchivos As Object
Dim Archivo As Object
Dim Info As String
'Creamos el objeto que nos da acceso al sistema de archivos
Set SistemaArchivos = CreateObject("Scripting.FileSystemObject")
'Obtenemos una variable al archivo especificado en ruta
Set Archivo = SistemaArchivos.GetFile(Ruta)
'Obtenemos el nombre y la unidad (drive) donde se encuentra
Info = Archivo.name & " en Unidad " & UCase(Archivo.drive) & vbCrLf
'Obtenemos la fecha de creacion
Info = Info & "Creado: " & Archivo.DateCreated & vbCrLf
'Obtenemos la fecha del ultimo acceso
Info = Info & "Último acceso: " & Archivo.DateLastAccessed & vbCrLf
'Obtenemos la fecha de la ultima modificacion
Info = Info & "Última modificación: " & Archivo.DateLastModified
'Mostramos la informacion en un cuadro de texto
MsgBox Info, 0, "Información de acceso al archivo"
'Liberamos la memoria usada
Set SistemaArchivos = Nothing
Set Archivo = Nothing
End Sub
'Esta es la forma en que podemos llamar al procedimiento anterior
'Tienes que pasarle una ruta existente se valida de todos modos
Public Sub MostrarDatosArchivo()
Dim strRuta As String
strRuta = "D:\1Usuarios\Avistamientos1\Avistamientos.xls"
If Dir(strRuta) <> "" Then
MostrarInformacionAccesoArchivo strRuta
Else
MsgBox "El archivo, en la ruta especificada NO existe"
End If
End Sub
'Ahora, como que no entendi como es que quieres aplicarlo, podrias
'convertir este procedimiento en una funcion que te devuelva el
'valor que quieras, seria algo así
Public Function MostrarInformacionArchivo(ByVal Ruta As String, ByVal Valor As Integer) As String
Dim SistemaArchivos As Object
Dim Archivo As Object
Dim Info As String
'Creamos el objeto que nos da acceso al sistema de archivos
Set SistemaArchivos = CreateObject("Scripting.FileSystemObject")
'Obtenemos una variable al archivo especificado en ruta
Set Archivo = SistemaArchivos.GetFile(Ruta)
Select Case Valor
Case 1 'Devolvemos el nombre del archivo
Info = Archivo.name
Case 2 'Devolvemos la unida donde se encuentra
Info = UCase(Archivo.drive)
Case 3 'Devolvemos la fecha de creacion
Info = Archivo.DateCreated
Case 4 'Devolvemos la fecha del ultimo acceso
Info = Archivo.DateLastAccessed
Case 5 'Devolvemos la fecha de la ultima modificacion
Info = Archivo.DateLastModified
End Select
'Liberamos la memoria usada
Set SistemaArchivos = Nothing
Set Archivo = Nothing
MostrarInformacionArchivo = Info
End Function
'La forma de usarla seria similiar al procedimiento, solo que
'ahora, muy importante, es una función, por lo tanto, nos devuelve
'un valor el cual guardamos en una varaible
Public Sub MostrarDatosArchivo2()
Dim strRuta As String
Dim Info As String
strRuta = "D:\1Usuarios\Avistamientos1\Avistamientos.xls"
If Dir(strRuta) <> "" Then
'Obtenemos y mostramos el nombre
Info = MostrarInformacionArchivo(strRuta, 1)
MsgBox Info
'y los restantes datos
Info = MostrarInformacionArchivo(strRuta, 2)
MsgBox Info
Info = MostrarInformacionArchivo(strRuta, 3)
MsgBox Info
Info = MostrarInformacionArchivo(strRuta, 4)
MsgBox Info
Info = MostrarInformacionArchivo(strRuta, 5)
MsgBox Info
Else
MsgBox "El archivo, en la ruta especificada NO existe"
End If
End Sub
'La importancia de esto es ahora en cualquier momento puedes
'obtener la información que quieras de cualquier archivo y
'al tenerla en una variable la puedes manipular como quieras