Listar carpetas

13/04/2004 - 18:24 por Carlos Durán Urenda | Informe spam
usando VBA, la funcion dir() me permite mostrar los archivos contenidos en
una carpeta esopecifica, pero como puedo mostrar unicamente las caropetas,
sin tener que utilizar un control como el DirList de VB, lo que quiero es
listar las carpetas en una hoja de calculo


Gracias

Carlos Durán
 

Leer las respuestas

#1 Fernando Arroyo
13/04/2004 - 17:54 | Informe spam
Prueba con el siguiente código:

Public wksH As Worksheet
Public lngContFila As Long

Sub ListarDirectorios()
Set wksH = Worksheets("Hoja1")

wksH.Range("A1") = "Ruta"
lngContFila = 2

EscribirArchivos ("C:\Datos") 'Carpeta que se procesará

wksH.Columns(1).AutoFit

Set wksH = Nothing
End Sub


Public Sub EscribirArchivos(RutaInicial As String)

Dim fso As FileSystemObject, fCarpeta As Folder, tmpCarpeta As Folder
Dim Fichero As File, tmpFichero As File

Set fso = New FileSystemObject
Set fCarpeta = fso.GetFolder(RutaInicial)

For Each tmpCarpeta In fCarpeta.SubFolders
wksH.Cells(lngContFila, 1) = tmpCarpeta.Path
lngContFila = lngContFila + 1

EscribirArchivos (tmpCarpeta.Path)

Next

Set tmpFichero = Nothing
Set Fichero = Nothing
Set tmpCarpeta = Nothing
Set fCarpeta = Nothing
Set fso = Nothing

Exit Sub

End Sub


Para que funcione tal como está escrito es necesario que en libro exista un hoja llamada Hoja1 (que deberá estar vacía), y que se establezca una referencia a la libreria "Microsoft Scripting Runtime" desde Herramientas->Referencias.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Carlos Durán Urenda" escribió en el mensaje news:
usando VBA, la funcion dir() me permite mostrar los archivos contenidos en
una carpeta esopecifica, pero como puedo mostrar unicamente las caropetas,
sin tener que utilizar un control como el DirList de VB, lo que quiero es
listar las carpetas en una hoja de calculo


Gracias

Carlos Durán


Preguntas similares