Macro para copiar varias hojas con el nombre de distintas celdas

Tengo una hoja excel que se llama Plantilla 1 y en otro hoja excel en la celda A2 un nombre.

Al pulsar a un botón me copia la hoja Plantilla 1 y le pone el nombre de la celda A2 de otra hoja

Private Sub CommandButton1_Click()

nombre = Range("A2").Value
Sheets("Plantilla 1").Copy After:=Sheets(4)
ActiveSheet.Name = nombre

End Sub

Lo que quiero es que copia varias hojas en función de una listado de nombres que estén descritos en las celdas A3, A4... Etc...

Ejemplo: tengo en una hoja excel en la celda A2 el nombre Nombre 1, en la celda A3 el nombre Nombre 2, y en la celda A4 el nombre Nombre 3, al pulsar el botón quiero que me genere tres hojas iguales que la Plantilla 1 pero con los nombres de las celdas descritos anteriormente.

1 Respuesta

Respuesta
2

Te anexo la macro, solamente cambia "Hoja" por el nombre de la hoja donde tienes los nombres

Sub Copiar_Plantilla()
'Por Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")        'hoja con los nombres
    Set h2 = Sheets("Plantilla 1")    'hoja con la plantilla a copiar
    '
    i = 2
    Do While h1.Cells(i, "A").Value <> ""
        nombre = h1.Cells(i, "A").Value
        existe = False
        For Each h In Sheets
            If LCase(h.Name) = LCase(nombre) Then
                existe = True
                Exit For
            End If
        Next
        If existe = False Then
            Sheets("Plantilla 1").Copy After:=Sheets(Sheets.Count)
            ActiveSheet.Name = nombre
        End If
        i = i + 1
    Loop
    Application.ScreenUpdating = True
    h1.Select
    MsgBox "Fin creación de hojas"
End Sub

.

.Sal u dos. Dante Amor. Avísame cualquier duda. R ecuerda valorar la respuesta. G racias

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas