Coloca a tu burro junto a otros burros y aprenderá a rebuznar

miércoles, 1 de abril de 2009

¿Cómo pasar los nombres de archivos a una hoja de excell?

Cuantas veces nos hemos encontrado con un listado muy grande de fotos, documentos, archivos, con los cuales necesitariamos hacer una lista de lo que tenemos en una determinada carpeta.

¿Cómo importar los nombres de los archivos de una carpeta determinada a excel para trabajar con ellos como texto?. Es decir copiar desde el explorador de windows los nombres de los archivos de una carpeta y que cada uno de estos nombres se copien en celdas diferentes de excel.

Para hacer estoy hay que saber programar una macro en VisualBasic para aplicarla en Excell, utilizaremos la función Dir que representa el nombre de un archivo, directorio o carpeta, en el siguiente ejemplo os explico como hacer esta macro.

Para crear una macro hay que
  1. Abrir una hoja de excell
  2. Herramientas
  3. Desplegar macros y seleccionar Macros


  4. Cuando seleccionemos Macros nos saldra la siguiente ventana.


  5. Escribimos el nombre de la macro que vamos a crear y damos al boton de Crear, nos saldrá una nueva ventana que es la de Visual Basic.


  6. En esta ventana de Visual Basic eliminaremos Sub ma() End Sub y pegaremos el código que más abajo os explico.
  7. Cuando hayamos pegado el código vamos a Archivo -->Cerrar y volver a Microsoft Excel, de esta forma volveremos a Excel para poder ejecutar la macro que hemos creado.
  8. Ya tenemos la macro creada y apunto de ejecutarla, para ejecutar la macro ir a Herramientas
    Desplegar macros y seleccionar Macros
  9. Nos saldrá la macro que hemos creado, la seleccionamos y le damos al Botón Ejecutar para que nos saque el listado
  10. De esta forma crearemos un listado de los archivos que tenemos en una carpeta.

  11. Explicación del código de la Macro

    Sub ListarArchivosCarpeta()

    Dim strArchivos As String

    Dim strNombreCarpeta As String
    'carpeta donde se hará la búsqueda
    strNombreCarpeta = "C:\Documents and Settings\All Users\Documentos\"
    'o también se puede hacer la búsqueda en la carpeta donde se encuentra este libro
    'strNombreCarpeta = ThisWorkbook.Path
    'pasamos al directorio elegido, indicando como tipo de archivo Excel
    ChDir strNombreCarpeta
    strArchivos = Dir("*.xls")
    'podemos buscar otro tipo de archivos, por ejemplo .doc, esta es la parte donde tenemos 'que poner la extensión de archivo a buscar o archivos, para mostrar todos los archivos hay 'que poner *.* , excel *.xls, fotos *.jpg - *.gif , etc
    strArchivos = Dir("*.doc")
    'recorremos los archivos de la carpeta
    Do While strArchivos <> ""
    'podemos mostar el nombre de cada archivo encontrado
    'MsgBox strArchivos
    'o podemos armar una lista en la hoja Excel
    'en este ejemplo comenzará a partir de la celda activa
    ActiveCell.Value = strArchivos
    ActiveCell.Offset(1, 0).Select
    'obtiene la siguiente entrada
    strArchivos = Dir
    Loop
    End Sub

  12. En este código la comilla ' significa comentario, todo lo que contenga la comilla es un comentario en Visual Basic