Macro Para Listar Archivos Contenidos En Una Carpeta!

los molesto de nuevo =)!!

Necesito una macro que me liste los archivos contenidos dentro de la carpeta en la cual se encuentra el libro de calculo. Ojala especificando el nombre del archivo en una columna y en la otra un hipervínculo hacia el archivo.

Si me pudiesen ayudar con esto estaré infinitamente agradecido.

Atento a sus comentarios me despido.

1

1 Respuesta

807.225 pts. Excel avanzado y VBA

Te mando mi solución. Con esta macro primera se abrirá un browse para que selecciones una carpeta y una vez seleccionada te listará desde la celda activa hacia abajo todos los archivos contenidos en dicha carpeta

Sub listar_archivos()
Set navegador = CreateObject("shell.application")
carpeta = navegador.browseforfolder(0, "SELECCIONE UNA CARPETA", 0, "C:\").items.Item.Path
ChDir carpeta & "\"
archi = Dir("*.*")
Do While archi <> ""
ActiveCell.Value = archi
ActiveCell.Offset(1, 0).Select
archi = Dir()
Loop
End Sub

recuerda finalizar y puntuar

hola gracias por contestar primeramente.

tengo una macro parecida que hace eso mismo =) pero quería ver si era posible que la macro listara los elementos contenidos dentro de la carpeta en la cual se encuentra el libro, te cuento un poco mas para que me entiendas tengo un libro menú de clientes con cerca de 2000 a los cuales les hice una carpeta a cada uno en donde se almacenan las ordenes de trabajo para dicho cliente, en dicho libro menú hipervincule un libro de trabajo en donde anoto el nombre de cada orden y la hipervínculo a su respectivo archivo. entonces la idea era poder automatizar esta ultima parte y se me ocurrió (luego de bajar un archivo con una macro que hacia algo similar a su respuesta) la posibilidad de hacer lo que le explique anteriormente listar los archivos de la carpeta en la que esta ese libro. asi solo debo copiar el libro a cada carpeta (con n2ncopy) y al abrirlo y ejecutarlo listaría todas las ordenes de compra.

nuevamente gracias por comentar y si existiera una solución a lo que le digo se lo agradecería aun mas =)

(se me olvidaba mi versión de excel es 2007 =))

Saludos.

Para entenderlo mejor, mándame el archivo con un ejemplo detallado.

[email protected]

enviado espero su respuesta!!!!

Ya te he contestado por mail

Ya me contarás

funciona bien solo me faltaría la dirección de la ruta de cada archivo y el hipervínculo a cada uno se podrá incluir en la macro?

espero no molestar demasiado.

Saludos

Entonces ahora la macro será así:

Sub lista_archivos()
Range("c3").Select
Do While ActiveCell.Value <> ""
carpeta = ActiveCell.Value
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = carpeta
Range("a1").Select
ChDir "C:\Documents and Settings\en practica\Escritorio\BASE DATOS\ARCHIVO OT\" & carpeta
archi = Dir("*.*")
Do While archi <> ""
ActiveCell.Value = CurDir & "\" & archi
ActiveSheet.Hyperlinks.Add anchor:=ActiveCell, Address:=ActiveCell.Value, TextToDisplay:=ActiveCell.Value
ActiveCell.Offset(1, 0).Select
archi = Dir()
Loop
Sheets("hoja1").Select
ActiveCell.Offset(1, 0).Select
Loop
End Sub

pruébala y me cuentas.

las ultimas dos cositas primero me arroja un error relacionado con esto ActiveSheet.Name = carpeta , creo que es por que algunos nombres de las carpetas son muy largos y no alcanza a crear la hoja de calculo con ese nombre y por ultimo.

podrías agregar a la primera macro que me enviaste

Sub listar_archivos()
Set navegador = CreateObject("shell.application")
carpeta = navegador.browseforfolder(0, "SELECCIONE UNA CARPETA", 0, "C:\").items.Item.Path
ChDir carpeta & "\"
archi = Dir("*.*")
Do While archi <> ""
ActiveCell.Value = archi
ActiveCell.Offset(1, 0).Select
archi = Dir()
Loop
End Sub

que aparte de nombrar el archivo que contiene la carpeta en una columna en la columna siguiente el hipervínculo a dicho archivo.

p.d. creo que después de esto te deberé como 20 estrellas =)

Perdona no entiendo... en la primera macro teníamos que elegir la carpeta, pero ahora ya la tenemos elegida en cada línea de excel...¿para qué necesitamos el browse de carpeta?

sorry es que le encontré otro uso y quería matar dos pájaros de un tiro =)!!!

Entonces estoy un poco desubicado, creo que son cosas distintas...

En nuestro caso la carpeta está bien definida en cada celda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas