30 septiembre, 2023

CREAR UNA CARPETA CON VBA

Hola a todos!.

El post de hoy surge como respuesta a una consulta que me enviaron hace unos días. La necesidad que me comentaron era el poder crear una o varias carpetas desde VBA en un directorio seleccionado.

Bien, esto es sencillo de realizar en VBA y con unas cuantas líneas de código lo tendremos solucionado. Imaginad que tenemos que crear 16 carpetas con estos nombres:

Con esta sencilla macro lo realizaremos en segundos:

Option Explicit
Sub Crear_Carpeta()
'Definimos variables
    Dim Path As String, dir_archivo As Variant
    Dim fin As Long, i As Long
    'Abrimos ventana de selección
    Set dir_archivo = Application.FileDialog(msoFileDialogFolderPicker)
    dir_archivo.Show
    'Si no seleccionamos nada salimos del proceso
    If dir_archivo.SelectedItems.Count = 0 Then
    Exit Sub
    End If
    'Obtenemos ruta
    Path = dir_archivo.SelectedItems(1)
    fin = Application.CountA(Range("A:A"))
    'Creamos carpetas
    For i = 2 To fin
        MkDir Path & "\" & Cells(i, 1)
        Next i
    End Sub

Como podéis observar utilizamos la función MKDir creamos muy fácilmente la nueva carpeta, indicando únicamente la ruta y el nombre ya lo tenemos.

El resultado es el siguiente:

Perfectamente logrado y con la duda del lector solucionada.

Y esto es todo, espero que os haya resultado de interés 🙂

A continuación puedes descargar el archivo:

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

4 comentarios en «CREAR UNA CARPETA CON VBA»

  1. Hola Paula:

    Sí se puede, en el ejemplo que he puesto, crea en la columna B otros nombres de carpeta (ejem: subcarpeta1, 2 , 3, así hasta 16) y luego ejecuta este código 🙂

    Option Explicit
    Sub Crear_Carpeta()
    'Definimos variables
    Dim Path As String, dir_archivo As Variant
    Dim fin As Long, i As Long, nPath As String
    'Abrimos ventana de selección
    Set dir_archivo = Application.FileDialog(msoFileDialogFolderPicker)
    dir_archivo.Show
    'Si no seleccionamos nada salimos del proceso
    If dir_archivo.SelectedItems.Count = 0 Then
    Exit Sub
    End If
    'Obtenemos ruta
    Path = dir_archivo.SelectedItems(1)
    fin = Application.CountA(Range("A:A"))
    'Creamos carpetas
    For i = 2 To fin
    MkDir Path & "\" & Cells(i, 1)
    nPath = Path & "\" & Cells(i, 1)
    MkDir nPath & "\" & Cells(i, 2)
    Next i
    End Sub

    Saludos.

  2. Muy útil, gracias. Quisiera crear una carpeta en caso de que no exista con un nombre definido en el código en la ubicación del archivo si preguntar, es posible?

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

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.plugin cookies

ACEPTAR
Aviso de cookies