Copiar varias hojas a un nuevo libro con macros

Tengo un archivo con 10 hojas lo que quiero es copiar a un nuevo libro con vba.

1 respuesta

Respuesta
2

H o l  a:

Si en el libro solamente hay 10 hojas y quieres copiar todas las hojas, puedes utilizar la siguiente macro. Te copia todas las hojas a un nuevo libro

Sub CopiarTodasLasHojas()
'Por.Dante Amor
    Worksheets.Copy
End Sub

Pero si en el archivo tienes más hojas y quieres indicar cuáles hojas copiar, entonces utiliza la siguiente macro. Tienes que escribir en la instrucción Array los nombres de las hojas que quieres copiar.

Sub CopiarHojas()
'Por.Dante Amor
    hojas = Array("Hoja1", "Hoja2", "Hoja3", "Hoja4", "Hoja5")
    cad = ""
    For h = LBound(hojas) To UBound(hojas)
        existe = False
        For Each whoja In Sheets
            If UCase(whoja.Name) = UCase(hojas(h)) Then
                existe = True
                Exit For
            End If
        Next
        If existe = False Then
            cad = cad & hojas(h) & ", "
        End If
    Next
    If cad = "" Then
        Sheets(hojas).Copy
        MsgBox "Hojas copiadas", vbInformation, "COPIAR HOJAS"
    Else
        MsgBox "Las siguientes hojas no existen: " & cad, vbCritical, "ERROR DE HOJAS"
    End If
End Sub

La macro revisa los nombres de las hojas que pusiste en el Array, si alguna hoja no existe, entonces no copia las hojas y te envía un mensaje; si todas las hojas existen, entonces te copia las hojas a un nuevo libro.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas