hacer listado de los libros de una carpeta

01/06/2007 - 17:21 por estebanfrancom | Informe spam
Hola le agradeceria a alguien que me pueda colaborar con este
yo tengo una carpeta y de esa carpeta necesito hacer un listado de
todos los libros y de cada libro el listado de todas las hojas

gracias .

att:Esteban
 

Leer las respuestas

#1 Héctor Miguel
01/06/2007 - 23:51 | Informe spam
hola, esteban !

... tengo una carpeta y de esa carpeta necesito hacer un listado de todos los libros y de cada libro el listado de todas las hojas



copia/pega las siguientes lineas en un modulo de codigo normal/general/estandar/...
el codigo borrara el contenido de la hoja activa, y volcara el resultado de libros encontrados con las hojas que contengan
asegurate de especificar la carpeta adecuada y no olvides poner al final el signo "\"

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

-> IMPORTANTE: establece primero en tu proyecto de macros VBA una referencia a la libreria...
-> Microsoft ADO Ext. x.x for DDL and Security

Dim Libro As ADOX.Catalog, Hoja As ADOX.Table, _
Ruta As String, Archivo As String, Tmp As String, _
Fila As Integer, Col As Byte
Sub Lista_de_archivos_y_hojas()
Ruta = "c:uta y sub\carpetas donde pusiste\tus libros de excel\"
Archivo = Dir(Ruta & "*.xls")
Fila = 0
Application.ScreenUpdating = False
Cells.ClearContents
Do While Archivo <> ""
Fila = Fila + 1: Col = 0
Range("a1").Offset(Fila) = Archivo
Set Libro = New ADOX.Catalog
Libro.ActiveConnection = _
"Provider=MSDASQL.1;Data Source=Excel Files;" & _
"Initial Catalog=" & Ruta & Archivo
For Each Hoja In Libro.Tables
Tmp = Application.Substitute(Hoja.Name, "'", "")
If Right(Tmp, 1) = "$" Then
Col = Col + 1
Range("a1").Offset(Fila, Col) = Left(Tmp, Len(Tmp) - 1)
End If
Next
Set Libro = Nothing
Archivo = Dir()
Loop
ActiveSheet.UsedRange.Columns.AutoFit
Range("a1") = Ruta
End Sub

Preguntas similares