UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1 Listar Archivos y Carpetas en VBA el 15/12/15, 02:45 pm

holaDDD


Buen día,
Podría alguien ayudarme con la siguiente macro?


la siguiente macro crea una lista de los archivos y carpetas de una rusta especifica (la cual tu asignas en el código) pero me gustaría que aparte me generara la posibilidad de ver que usuario fue el último en modificar el archivo listado (generalmente son archivos de word o excel)
Podría alguien modificar el código y agregar esa opción?
Saludos!!



Código:
Sub ListFiles()
    Const sRoot    As String = "C:\"
    Dim t          As Date
    Application.ScreenUpdating = False
    With Columns("A:D")
        .ClearContents
        .Rows(1).Value = Split("File,date,size,UserName", ",")
    End With
    t = Timer
    NoCursing sRoot
    Columns.AutoFit
    Application.ScreenUpdating = True
    MsgBox Format(Timer - t, "0.0s")
End Sub

Sub NoCursing(ByVal sPath As String)
    Const iAttr    As Long = vbNormal + vbReadOnly + _
                              vbHidden + vbSystem + _
                              vbDirectory
    Dim col        As Collection
    Dim iRow        As Long
    Dim jAttr      As Long
    Dim sFile      As String
    Dim sName      As String
    Dim obj        As Object
    Dim cosa        As Object
    Dim valo        As String
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
    Set obj = CreateObject("Excel.application")
    Set col = New Collection
    col.Add sPath
    iRow = 1
    Do While col.Count
        sPath = col(1)
        sFile = Dir(sPath, iAttr)
        Do While Len(sFile)
            sName = sPath & sFile
            On Error Resume Next
            jAttr = GetAttr(sName)
            If Err.Number Then
                Debug.Print sName
                Err.Clear
            Else
                If jAttr And vbDirectory Then
                    If Right(sName, 1) <> "." Then col.Add sName & "\"
                Else
                    iRow = iRow + 1
                    Set cosa = obj.Workbooks.Open(sName)
                    valo = cosa.BuiltinDocumentProperties("Last author")
                    If (iRow And &HFFF) = 0 Then Debug.Print iRow
                    Rows(iRow).Range("A1:D1").Value = Array(sName, _
                                                            FileDateTime(sName), _
                                                            FileLen(sName), _
                                                            valo)
                    obj.Application.DisplayAlerts = False
                    cosa.Close False
                    Set cosa = Nothing
                End If
            End If
            sFile = Dir()
        Loop
        col.Remove 1
    Loop
    obj.Quit
    Set obj = Nothing
End Sub

Igtelo


Si los códigos son tuyos no creo que tengas problema para algo tan sencillo.

Agrega un procedimiento (macro) en thisworkbook para que quede registrado en la hoja en alguna columna (que sólo tu sepas) el nombre y fecha de quien lo trabajó, al abrir o cerrar el libro, lo logras con un inputbox. 
De esta forma no tienes que modificar tus códigos.

Por favor corrige tu localización, es un foro serio y merece respeto.
Saludos
Ignacio Téllez

holaDDD


no, el código no es mío, lo encontré en otro foro lo empeze a usar, el cual me ah sido muy útil pero ahora quisiera agregarle esta otra opción, aún estoy aprendiendo en VBA y no sé cómo realizar el cambio correctamente
en cuanto a agregarle eso en la parte del thisworkbook no creo que me sea muy útil ya que lo que quiero ver es el último usuario que modifico un archivo que no ha sido abierto y/o modificado en mucho tiempo

Igtelo


Que tal HolaDDD.

Primeramente, te vuelvo a pedir que modifiques tu localización, esto es un foro no tu red social.

Descarga el complemento ASAP-Utilities desde su sitio, es gratuito y es formidable.
Te dejo video para que veas que función utilizar, te listará mucho más de lo que hace la macro.




Saludos
Ignacio Téllez

holaDDD


Buenas tardes  Igtelo
con respecto a lo mi localización estas en lo correcto, esto no es una red social por lo cual no veo la necesidad de ello, sin mencionar que me incomoda el hecho de tener que revelar datos personales
pero independientemente de eso no puedo hacerlo ya que me encuentro usando una PC del trabajo la cual esta configurada de tal manera que no puedo ver videos (los tutoriales) y al tratar de modificar mi perfil no se actualiza la pagina (algo del proxy me supongo)
cerrando ese punto agradezco la sugerencia del complemento ASAP-Utilities y procederé a investigar sobre el
Saludos

Admin


Admin
Se cierra el tema.

Administración.

http://www.universoexcelforo.com

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.