Listar Archivos II

Aporta tus macros y códigos Excel de interés para la comunidad.

Reglas del Foro
Este foro no es para hacer preguntas!
Este foro solo es para que aportes algo de interés para la comunidad.
(para preguntas vuelve al índice y busca los foros de "Tus Preguntas a la Comunidad")
Compartir en:
     

Listar Archivos II

Notapor Adrian » 24 Ene 2012 13:26

Hola dejo macro para listar Archivos, recordando otro post que trata lo mismo:
post71807.html?hilit=Listar%20Archivos#p71807

Código: Seleccionar todo
Sub ListarArchivos()
Dim Direc As FileDialog, Ruta As String, oFile, i As Long
Set Direc = Application.FileDialog(msoFileDialogFolderPicker)
Range("A2:A" & Rows.Count).ClearContents
If Direc.Show = 0 Then Exit Sub
Ruta = Direc.SelectedItems(1)
i = 2
Set oFile = CreateObject("Scripting.FileSystemObject")
With CreateObject("Scripting.FileSystemObject")
     For Each oFile In .GetFolder(Ruta).Files
       Range("A" & i) = oFile.Name
       i = i + 1
     Next
End With
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Adrian
Moderator
Moderator
 
Registrado: 13 Jun 2004 17:24
Ubicación: Chamical La Rioja ARG

Re: Listar Archivos II

Notapor TodoExcel » 25 Ene 2012 10:24

Buen aporte. Igualmente recomiendo ampliar el post original para evitar duplicar temas.
Salu2.xls
:-)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
TodoExcel
Manager Exceluciones
Manager Exceluciones
 
Registrado: 05 Jun 2004 16:05

Re: Listar Archivos II

Notapor Adrian » 25 Ene 2012 10:50

Ok, se tendrá en cuanta para la próxima.
Esta macro a diferencia de la anterior lista también directorios (o carpetas).

Código: Seleccionar todo
Sub ListarArchivos()
Dim Direc As FileDialog, Ruta As String, oMiObj As Object, oFile As Object, i As Long
Dim oSubCarp As Object, Carp As Object
Set Direc = Application.FileDialog(msoFileDialogFolderPicker)
Range("A2:A" & Rows.Count).ClearContents
If Direc.Show = 0 Then Exit Sub
Ruta = Direc.SelectedItems(1): i = 2
Set oMiObj = CreateObject("Scripting.FileSystemObject")
Set oFile = CreateObject("Scripting.FileSystemObject")
Set oSubCarp = oMiObj.GetFolder(Ruta).SubFolders
With oMiObj
 For Each oFile In .GetFolder(Ruta).Files
  Range("A" & i) = oFile.Name
  i = i + 1
 Next
 For Each Carp In oSubCarp
   Range("A" & i) = "[" & Carp.Name & "]"
   i = i + 1
 Next
End With
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Adrian
Moderator
Moderator
 
Registrado: 13 Jun 2004 17:24
Ubicación: Chamical La Rioja ARG

Re: Listar Archivos II

Notapor Tinno » 26 Ene 2012 16:06

Que tal, realmente es muy corto el codigo y funciona EXCELente, ahora, retomando los 2 codigos anteriores de Adrian,agrego un poco mas de codigo pero, creo que tambien queda Bien (way) Ok :mrgreen:

Código: Seleccionar todo
Sub ListarArchivos()
 Dim Direc As FileDialog, Ruta As String, oMiObj As Object, oFile As Object, i As Long
 Dim oSubCarp As Object, Carp As Object, FSO As Object, FileObject As Object
   Set Direc = Application.FileDialog(msoFileDialogFolderPicker)
      Range("A2:E" & Rows.Count).ClearContents
    If Direc.Show = 0 Then Exit Sub
      Ruta = Direc.SelectedItems(1): i = 2
   Set oMiObj = CreateObject("Scripting.FileSystemObject")
   Set oFile = CreateObject("Scripting.FileSystemObject")
   Set oSubCarp = oMiObj.GetFolder(Ruta).SubFolders
   Set FSO = CreateObject("Scripting.FileSystemObject")
      With oMiObj
         For Each oFile In .GetFolder(Ruta).Files
            Range("A" & i) = oFile.Name
         Set FileObject = FSO.GetFile(Ruta & "\" & oFile.Name)
            Cells(i, 2).Value = FSO.GetExtensionName(oFile.Name)
            Cells(i, 3).Value = FileObject.DateCreated
            Cells(i, 4).Value = FileObject.DateLastAccessed
            Cells(i, 5).Value = FileObject.DateLastModified
         Set FileObject = Nothing
           i = i + 1
         Next
            For Each Carp In oSubCarp
               Range("A" & i) = "[" & Carp.Name & "]"
                  ListaFile (Ruta & "\" & Carp.Name)
               i = Cells(Rows.Count, 1).End(xlUp).Row + 1
            Next
      End With
   Set Direc = Nothing
   Set oMiObj = Nothing
   Set oFile = Nothing
   Set oSubCarp = Nothing
   With [A1:E1]
         .EntireColumn.AutoFit
         .Value = [{"Carp/File","Ext","Created", "Last Accessed", "Last Modoified"}]
         .HorizontalAlignment = xlCenter
   End With
End Sub
Sub ListaFile(Ruto$)
 Dim Direct As FileDialog, oFileT, ia&
 Dim FSOd As Object, FileObjD As Object
   Set Direct = Application.FileDialog(msoFileDialogFolderPicker)
      ia = Cells(Rows.Count, 1).End(xlUp).Row + 1
   Set oFileT = CreateObject("Scripting.FileSystemObject")
   Set FSOd = CreateObject("Scripting.FileSystemObject")
      With CreateObject("Scripting.FileSystemObject")
           For Each oFileT In .GetFolder(Ruto).Files
             Range("A" & ia) = oFileT.Name
             Set FileObjD = FSOd.GetFile(Ruto & "\" & oFileT.Name)
            Cells(ia, 2).Value = FSOd.GetExtensionName(oFileT.Name)
            Cells(ia, 3).Value = FileObjD.DateCreated
            Cells(ia, 4).Value = FileObjD.DateLastAccessed
            Cells(ia, 5).Value = FileObjD.DateLastModified
         Set FileObjD = Nothing
             ia = Cells(Rows.Count, 1).End(xlUp).Row + 1
           Next
      End With
   Set oFileT = Nothing
   Set Direct = Nothing
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Tinno
Miembro Frecuente
Miembro Frecuente
 
Registrado: 09 Nov 2010 19:03
Ubicación: México D.F. la Magdalena


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros, programación y códigos

¿Quién está conectado?

Usuarios navegando por este Foro: ALEJANDROREYES y 1 invitado