listar los archivos de un directorio en una hoja de excel

18/03/2008 - 17:33 por sam75 | Informe spam
Quiero extraer de un directorio todos los nombres de archivos que hay en el y
listarlos en una hoja de Excel.
Alguien me puede ayudar

Gracias

Sam

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
20/03/2008 - 06:58 | Informe spam
hola, chicos !

de la segunda opcion (hasta donde se)... un objeto "FileSearch" pudiera ser ineficiente cuando se combinan "ciertos factores"... (p.e.)
- la pareja de versiones de office/excel con windows (y las actualizaciones instaladas)
- como se pudiera combinar el ".FileName" con el ".FileType" (y se se usan comodines antes/despues del patron de busqueda)
- con ciertas combinaciones'... el metodo ".Execute(...)" -> NO devuelve nada :-\\

otra posibilidad es generar un archivo por los "viejos" comandos D.O.S. y subirlo en excel desde un archivo de texto ;)

saludos,
hector.

Juan M escribio en el mensaje ...
Te paso tres formas,
1) El siguiente procedimiento. Modifica la ruta según tus necesidades.
Revisa la ayuda de la funcion Dir.
Sub ListaDir()
Dim i As Long
Dim MiRuta As String
Dim MiNombre As String
i = 1
MiRuta = "c:\temp\*.xls"
MiNombre = Dir(MiRuta, 0)
Do While MiNombre <> ""
If MiNombre <> "." And MiNombre <> ".." Then
Range("E" & i) = MiNombre
i = i + 1
End If
MiNombre = Dir
Loop
End Sub

2) El metodo propuesto en la siguiente pagina
http://www.erlandsendata.no/english...infolder97

3) Mediante las antiguas Excel 4 macro. descrito en la siguiente pagina
http://www.jkp-ads.com/Articles/ExcelNames08.htm

resumido
Crea un nombre Archivo (menu insertar>Nombre>Definir) con la siguiente formula
=Archivos($C$1)

En C1 pon la ruta con la ruta con la extensión que quieras
=c:\temp\*.xls

en A1 escribe la siguiente formula
=INDICE(Archivo;FILA())

y arrastra hasta que aparezca un error #¡REF! que sera cuando se acaben los archivos.

sam75 escribio en el mensaje ...
Quiero extraer de un directorio todos los nombres de archivos que hay en el y listarlos en una hoja de Excel.
Alguien me puede ayudar
Respuesta Responder a este mensaje
#2 sam75
20/03/2008 - 15:44 | Informe spam
Muchas gracias por la ayuda JUAN y HECTOR.
Por ahora me quedé con la opción de HECTOR usando "viejos comandos de D.O.S"
(DIR /B >XXX, que ya ni me acordaba de ellos), pero voy a probar las opciones
que me describió JUAN para probar (aunque no tengo experiencia con las macro).
Muchas gracias

Sam
Respuesta Responder a este mensaje
#3 Juan M
24/03/2008 - 23:00 | Informe spam
Hola Héctor,

El caso donde he encontrado que la segunda opción no devuelve resultados, es
cuando busca archivos con extension .zip.
Supongo que pueda ser uno de las problemas que sugieres.

Otra cosa, además de lo que indicas, es que FileSearch, según dicen, no esté
soportado en excel 2007
http://forums.microsoft.com/MSDN/Sh...p;SiteID=1

En esta misma conversación proponen un método empleando un script.

Un saludo,
Juan



"Héctor Miguel" escribió
hola, chicos !

de la segunda opcion (hasta donde se)... un objeto "FileSearch" pudiera
ser ineficiente cuando se combinan "ciertos factores"... (p.e.)
- la pareja de versiones de office/excel con windows (y las
actualizaciones instaladas)
- como se pudiera combinar el ".FileName" con el ".FileType" (y se se usan
comodines antes/despues del patron de busqueda)
- con ciertas combinaciones'... el metodo ".Execute(...)" -> NO devuelve
nada :-\\

otra posibilidad es generar un archivo por los "viejos" comandos D.O.S. y
subirlo en excel desde un archivo de texto ;)

saludos,
hector.

Juan M escribio en el mensaje ...
Te paso tres formas,
1) El siguiente procedimiento. Modifica la ruta según tus necesidades.
Revisa la ayuda de la funcion Dir.
Sub ListaDir()
Dim i As Long
Dim MiRuta As String
Dim MiNombre As String
i = 1
MiRuta = "c:\temp\*.xls"
MiNombre = Dir(MiRuta, 0)
Do While MiNombre <> ""
If MiNombre <> "." And MiNombre <> ".." Then
Range("E" & i) = MiNombre
i = i + 1
End If
MiNombre = Dir
Loop
End Sub

2) El metodo propuesto en la siguiente pagina
http://www.erlandsendata.no/english...infolder97

3) Mediante las antiguas Excel 4 macro. descrito en la siguiente pagina
http://www.jkp-ads.com/Articles/ExcelNames08.htm

resumido
Crea un nombre Archivo (menu insertar>Nombre>Definir) con la siguiente
formula
=Archivos($C$1)

En C1 pon la ruta con la ruta con la extensión que quieras
=c:\temp\*.xls

en A1 escribe la siguiente formula
=INDICE(Archivo;FILA())

y arrastra hasta que aparezca un error #¡REF! que sera cuando se acaben
los archivos.



sam75 escribio en el mensaje ...
Quiero extraer de un directorio todos los nombres de archivos que hay en
el y listarlos en una hoja de Excel.
Alguien me puede ayudar






Respuesta Responder a este mensaje
#4 Héctor Miguel
25/03/2008 - 00:29 | Informe spam
hola, Juan M !

El caso donde he encontrado que la segunda opcion no devuelve resultados
es cuando busca archivos con extension .zip.
Supongo que pueda ser uno de las problemas que sugieres.
Otra cosa, ademas... es que FileSearch, segun dicen, no este soportado en excel 2007 ...
http://forums.microsoft.com/MSDN/Sh...p;SiteID=1
En esta misma conversacion proponen un metodo empleando un script...



el metodo filesearch yo lo usaba (y sugeria) bastante, hasta la llegada de la version xp de windows
(que es donde empezo a mostrar las inexactitudes) :-((

(creo que) lo unico que se puede a#orar del metodo, es la busqueda +/- sencilla por sub-carpetas -?-

por lo demas, los otros metodos son igualmente efectivos (en cualquier version)
y hay para todos los gustos :))

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida