Copiar dos hojas de un libro con macros a otro libro sin macros a partir de un botón de comando

Tengo un formulario vba en un libro de excel 2007 que contiene dos hojas: la una se llama FORMULARIO y la otra DATOS, las cuales cargan información desde una macro que está contenida en dicho formulario vba en el libro 1. La hoja DATOS aporta información a la hoja FORMULARIO a partir de un botón de cuadro combinado que genera información en diferentes cuadros de texto a través de un buscador, en fin esto ultimo no es lo importante. Lo que requiero realmente es construir una macro que me permita copiar estas dos hojas en un libro nuevo (libro 2) con los mismos nombres de hoja, para poder llamar y abrir este nuevo libro desde el mismo formulario vba para realizar modificación de la información contenida en él sin perjudicar el libro 1. He intentado copiar estas hojas con una macro simple pero creo que la orden no me funciona porque el libro 1 tiene macros, y cuando ejecuto la opción de copiar estas dos hojas me copia dos veces la misma. La macro simple que he utilizado es:

Cells.Select
Range("B1"). Activate
Selection. Copy
Workbooks. Add
ActiveSheet. Paste
Windows("A- LICITA.xlsm").Activate
Sheets("Hoja1").Select
Cells.Select
Range("B1"). Activate
Application. CutCopyMode
= False
Selection. Copy
Windows(textbox113). Activate
Sheets("Hoja2").Select
ActiveSheet. Paste
Windows("00008.xlsx").Activate
Application.CutCopyMode =
False

Respuesta
3

Te paso la macro para conseguirlo:

Esta macro te copia todas las hojas a un nuevo libro que grabaremos con el nombre de libro_2.xlsx. Después de copiar las hojas deja grabado y cerrado el archivo libro_2.xlsx

Sub copiar_hojas()
milibro = ActiveWorkbook.Name
Workbooks.Add
otro = ActiveWorkbook.Name
Workbooks(milibro).Activate
For Each hoja In ActiveWorkbook.Sheets
hoja.Copy after:=Workbooks(otro).Sheets(Sheets.Count)
Next
Workbooks(otro).Activate
ActiveWorkbook.SaveAs "libro_2"
ActiveWorkbook.Close False
End Sub

recuerdaa finalizar y puntuar la consulta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas