Copiar nombres de archivos de una carpeta a excel

En ocasiones me han preguntado si se podía saber todos los archivos que hay en una carpeta y poder listarlos… pues claro que se puede contesté rápidamente. Todo lo que necesitas es una macro de VBA muy sencilla para obtener estos nombres de archivo. La idea es copiar nombres de archivos de una carpeta a Excel, así de sencillo, en una columna tener todo el listado.

Código para copiar nombres de archivos de una carpeta a Excel

El código de VBA lo he escrito basándome en pedacitos que he ido encontrando en la web… es decir, ya mucho escrito pero había que ponerlo a nuestro gusto y añadirle las explicaciones pertinentes. El código se basa en estos sencillos pasos:

  1. Seleccionar gráficamente con un pop-up la carpeta de la que se quieren copiar nombres de archivos de una carpeta a excel
  2. Comprobar que la carpeta no está vacía
  3. Hacer un bucle comprobando que el archivo no es vacío e ir poniéndolo en la celda correspondiente

El código del que estamos hablando es el siguiente:

Option Explicit
 
Sub Obtener_nombres()
     
    Dim fila As Long
    Dim Ruta_elegida, Nombre_archivo, Ruta_inicial
     
    Ruta_inicial = "C:\" '<<< Donde comienzo a mirar
     
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Selecciona una carpeta"
        .InitialFileName = Ruta_inicial
        .Show
        If .SelectedItems.Count <> 0 Then  'Compruebo que se ha seleccionado una carpeta
            Ruta_elegida = .SelectedItems(1) & "\"  'Ruta que he elegido
            Nombre_archivo = Dir(Ruta_elegida)      'primer archivo de la carpeta
            Do While Nombre_archivo <> ""
                Cells(7, 1).Offset(fila) = Nombre_archivo
                fila = fila + 1
                Nombre_archivo = Dir        'siguiente archivo
            Loop
        End If
    End With
End Sub

 Explicación

Como ya hemos explicado previamente, el código es muy sencillo, pero necesita de algunas explicaciones para poder entenderlo bien.

El siguiente pedacito de código es el que nos permite personalizar el pop-up de selección de carpeta en VBA:

Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Selecciona una carpeta"
        .InitialFileName = Ruta_inicial
        .Show

Una vez hecho esto compruebo que se ha seleccionado alguna carpeta con esta comprobación:

If .SelectedItems.Count <> 0 Then  'Compruebo que se ha seleccionado una carpeta

Finalmente voy recorriendo todos los archivos de la carpeta comprobando que no sean vacíos y pegándolos en su correspondiente celda (una más abajo que la anterior):

            Do While Nombre_archivo <> ""
                Cells(7, 1).Offset(fila) = Nombre_archivo
                fila = fila + 1
                Nombre_archivo = Dir        'siguiente archivo
            Loop

Descargable

Para poder esto desde tú casa tienes dos opciones, o copiar el código y hacerlo tú mismo o utilizar este archivo que os dejo para que podáis descargarlo: Extraer nombres de archivo de una carpeta

 

(Visited 41.507 times, 1 visits today)

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies