Macro para copiar hoja o contenido de una hoja a un libro diferente!

Les comento mi situación, tengo actualmente un libro de excel que consta de 3 hojas de calculo en una introduzco información, la otra hace los cálculos y la ultima me devuelve un documento con los cálculos ya hechos. El tema es que necesito llevar la información de esta ultima hoja a un nuevo libro de excel manteniendo los valores y formatos de la hoja copiada (margenes, diseño de celdas, etc..) y repetiré la acción varias veces asi que necesito que me vaya insertando las hojas en el libro de destino o que vaya escribiendo en la hoja vacía siguiente. Mi versión de excel es la 2010.
Si alguno de uds tuviera una solución a mi problema se lo agradecería infinitamente.

1 respuesta

Respuesta
2

Te mando mi solución y sigue mis instrucciones:

-En primer lugar tenemos nuestro archivo principal que las tres hojas que se llamará como quieras.

-Ahora abre un archivo nuevo de excel y lo guardas vacío en la misma carpeta donde está el principal con el nombre: seguridad.xlsx

-Cierra este segundo archivo vacío.

-Copia esta macro dentro del archivo principal y solo tienes que ejecutarla para que vaya acumulando tu tercera hoja en el archivo seguridad.xlsx

En mi ejemplo la tercera hoja se llama hoja3 si en tu caso es otro, solo tienes que cambiar el texto hoja3 por el tuyo.

Sub copia_hoja()
'por luismondelo
mio = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
Workbooks.Open ruta & "\" & "seguridad.xlsx"
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Sheets("hoja3").Copy after:=Workbooks(otro).Sheets(Workbooks(otro).Sheets.Count)
ActiveWorkbook.Save True
activeworkbook.close false
MsgBox "la hoja " & Sheets("hoja3").Name & " se ha copiado al archivo seguridad.xlsx"
End Sub

recuerda finalizar y puntuar

Gracias Luis por la ayuda!

se me olvido comentar que esta macro la ejecutare con un commandbutton desde una userform y al copiar este código en Private Sub CommandButton2_Click() me arroja error, recién me estoy introduciendo al mundo de las macros agradezco tu ayuda y si pudieras aclararme este punto te lo agradecería mucho!

Saludos!

La macro debería funcionar de esta manera:

(Recuerda lo que te he comentado sobre el nombre de la hoja3)

Private Sub CommandButton2_Click()
'por luismondelo
mio = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
Workbooks.Open ruta & "\" & "seguridad.xlsx"
otro = ActiveWorkbook.Name
Workbooks(mio).Activate
Sheets("hoja3").Copy after:=Workbooks(otro).Sheets(Workbooks(otro).Sheets.Count)
ActiveWorkbook.close True
MsgBox "la hoja " & Sheets("hoja3").Name & " se ha copiado al archivo seguridad.xlsx"
end sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas