Necesito un código para repetir una macro

Tengo el siguiente código, el cual me crea una carpeta pero quisiera que me cree varias hasta encontrar una fila vacía. El código es el siguiente:

sub generarcarpeta()
activesheet.range("f3").select
dim path as string, nombrecarpeta as string
path = activecell.offset(0, -4).value
nombrecarpeta = activecell.offset(0, -3).value
'verificamos si la carpeta existe ya...
if dir(path, vbdirectory) <> "" then
'comprueba que la carpeta no existe para crearla.
if dir(path & nombrecarpeta, vbdirectory) = "" then mkdir path & nombrecarpeta
'mkdir se emplea para crear un directorio/carpeta.
'si no se especifica la unidad de disco, el directorio/carpeta se crea en la unidad actual.
end If
end sub

1 respuesta

Respuesta
1

.09.01.17

Buenos días, Carlos

El siguiente procedimiento está adaptado a lo que solicitas como rutina cíclica:

Sub generarcarpeta()
Dim path As String, nombrecarpeta As String, CeldaIni As String
'---- Variables modificables ----
'=== Carlos, modifica estos datos de acuerdo a tu proyecto:
CeldaIni = "F3"
'---- fin Variables
'
'---- inicio de rutina:
'  
nombrecarpeta = Range(CeldaIni).Offset(0, -3).Value
LaFila = 0
'Inicio de ciclo hasta que encuentre una celda sin nombre de carpeta
Do While Len(nombrecarpeta) > 0
    path = Range(CeldaIni).Offset(LaFila, -4).Value
    nombrecarpeta = Range(CeldaIni).Offset(LaFila, -3).Value
    'verificamos si la carpeta existe ya...
    If Dir(path, vbDirectory) <> "" Then
    'comprueba que la carpeta no existe para crearla.
        If Dir(path & nombrecarpeta, vbDirectory) = "" Then MkDir path & nombrecarpeta
        'mkdir se emplea para crear un directorio/carpeta.
        'si no se especifica la unidad de disco, el directorio/carpeta se crea en la unidad actual.
    End If
    LaFila = LaFila + 1
Loop
End Sub

Como verás agregué al inicio del código una variable que indica desde donde comenzar la revisión de la lista de carpetas a crear.

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas