Saltar al contenido

VBScript – Automáticamente crear carpetas en base a valores de celda en Excel

Valora la información: 1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (Ninguna valoración todavía)
VBScript - Automáticamente crear carpetas en base a valores de celda en ExcelCargando…

Teniendo una lista de valores / datos en Excel se pueden crear carpetas en base a valores de celda automáticamente.

Por ejemplo tuve que crear aproximadamente 350 carpetas con números de factura el cual obtuve en un reporte de Excel y guardar dentro su XML y PDF, por el momento y tiempo solo me centre en lo sencillo que es crear las carpetas en base a los datos de las celdas el cual son los números de factura.

Instrucciones de Uso

1.- Abrir el editor de Visual Basic (ALT+F11).

2.- Insertar un modulo nuevo (Insert > Module).

3.- Copiar el código VBScript.

4.- Opcional modificar la linea 8 del código donde de puede especificar la ruta donde crear las carpetas, predeterminado toma la ruta donde esta guardado el Excel.

5.- Realizamos la selección de las celdas que tienen el nombre de las carpetas.

Muestra en Excel - Automáticamente crear carpetas en base a valores de celda en Excel

6.- Vamos al editor de Visual Basic y ejecutamos el Script (F5 o Directamente en la flecha verde).

Editor VB - Automáticamente crear carpetas en base a valores de celda en Excel

7.- Esperamos un tiempo pueden ser segundos o minutos dependiendo la cantidad y listo tendremos nuestras carpetas.

Para mas información de configuración ver: Como utilizar el Editor VBA en Office (Utilizar Macros VBScript) y Outlook – Crear y configurar reglas

Código para crear carpetas en base a valores de celda en Excel

VBScript que crea automáticamente carpetas en base a los valores de las celdas marcadas en Excel (Nombra la carpeta en base al dato que tiene cada celda y crea una carpeta por cada celda).

Sub CrearCarpetas()
Dim Rng As Range
Dim iMaxRows, iMaxCols, r, iC As Integer
Dim sRuta As String
Set Rng = Selection
maxRenglones = Rng.Rows.Count
maxColumnas = Rng.Columns.Count
sRuta = ActiveWorkbook.Path
    For iC = 1 To maxColumnas
    iR = 1
        Do While iR <= maxRenglones
            If Len(Dir(sRuta & "\" & Rng(iR, iC), vbDirectory)) = 0 Then
                MkDir (sRuta & "\" & Rng(iR, iC))
                On Error Resume Next
            End If
            iR = iR + 1
        Loop
    Next iC
End Sub

 

Leer entrada anterior
AdminPAQ - Solución error AdminPAQ Access violation at address 4006A3BC in module 'VCL50.BPL'. Read of address 00000047.
AdminPAQ – Solución error AdminPAQ Access violation at address 4006A3BC in module ‘VCL50.BPL’. Read of address 00000047.

AdminPAQ comenzó a mostrar el error "AdminPAQ Access violation at address 4006A3BC in module 'VCL50.BPL'. Read of address 00000047." este...

Cerrar