martes, abril 24, 2007

Generar una lista de archivos en Excel

En mi nota sobre como importar una lista de archivos a uno hoja de Excel vimos que podíamos usar las macrofunciones (funciones XLM) para realizar esta tarea.
Uno de mis lectores intentó crear una lista de un directorio que contiene 1600 archivos. El resultado fue que la macrofunción crea una lista de 256 archivos, y partir de allí recibimos #REF como resultado.
Mi sugerencia de usar TRANSPONER tampoco parece dar resultados, así que la solución es usar una macro (Vba) para crear la lista.
Una macro de este tipo fue publicada en el sitio Vbax con las correspondientes explicaciones.
Para los lectores que prefieren las explicaciones en español, procedemos de la siguiente manera:

1 – descargamos la macro en el enlace de arriba o popdirectlistaquí
2 – copiamos la macro a un módulo del editor de Vba (Herramientas—Macro—Editor VBa o Alt+F11)
3 – creamos una referencia al al Windows Script Host Object Model en el menú Herramientas—Referencias del editor de Vba




marcando la casilla al del Windows Script Host Object Model (antes de marcarla, los objetos aparecen en orden alfabético)



4 – Hacemos correr la macro con Herramientas—Macro—Ejecutar



Se abrirá una ventanilla donde elegimos el directorio/carpeta cuyos archivos queremos poner en la lista. La macro genera un nuevo cuaderno con la lista de los archivos y sus propiedades.



Technorati Tags:

5 comentarios:

  1. Excelente la macro señalada en tu blog, solo que tengo algunas dudas que espero puedas orientarme a solucionarlas: como solicitarle a la macro que solo muestre determinados tipos de archivos (ejemplo:.doc, .xls, etc)?, como ejecutar la macro desde el arranque de Excel y que me muestre el contenido de una carpeta en especifico?... Espero puedas orientarme, gracias de antemano.

    ResponderBorrar
  2. Tienes que modificar la propiedad FileType en la línea

    .FileType = msoFileTypeAllFiles 'get all files


    Las constantes posibles (tipos de archivo) son:
    msoFileTypeAllFiles
    msoFileTypeBinders
    msoFileTypeCalendarItem
    msoFileTypeContactItem
    msoFileTypeCustom
    msoFileTypeDatabases
    msoFileTypeDataConnectionFiles
    msoFileTypeDesignerFiles
    msoFileTypeDocumentImagingFiles
    msoFileTypeExcelWorkbooks
    msoFileTypeJournalItem
    msoFileTypeMailItem
    msoFileTypeNoteItem
    msoFileTypeOfficeFiles
    msoFileTypeOutlookItems
    msoFileTypePhotoDrawFiles
    msoFileTypePowerPointPresentations
    msoFileTypeProjectFiles
    msoFileTypePublisherFiles
    msoFileTypeTaskItem
    msoFileTypeTemplates
    msoFileTypeVisioFiles
    msoFileTypeWebPages
    msoFileTypeWordDocuments

    Para que la macro se ejecute desde el arranque, tienes que programar un evento WorkBook_Open.

    ResponderBorrar
  3. Tengo office 2007, la macro me genera el siguiente error:

    With Application.FileSearch
    El objeto no admite esta accion.
    Qué puede ser?
    Muchas gracias.

    ResponderBorrar
  4. La propiedad FileSearch ha sido eliminada en Excel 2007. Vaya uno a saber por que motivos!
    Haciendo una búsqueda en la Internet podrás encontrar varias soluciones.

    ResponderBorrar
  5. muchas gracias, me sirvio de mucho, primero me costó entenderlo ya que esta muy cmplicado pero a intentos lo logré. Deberías hacer una versión en video para que se más encillo de comprender

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.