Copiar y guardar dos hojas desde documento para macros a xlsx

Hola buen día:

Inicialmente una disculpa no finalizar la pregunta! No tenía acceso a internet!

Tengo en un documento habilitado para macros el siguiente código en la hoja de calculo "REPORTE MENSUAL":

Sub CREAREPORTE()
Dim MiReporte As String
Sheets("CAPTURA").Activate
MiReporte = Range("O7")
Set l1 = ThisWorkbook
 Sheets("REPORTE MENSUAL").Copy
 Cells.Copy
 Range("A1:E100").Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 Application.DisplayAlerts = False
 ActiveWorkbook.SaveAs Filename:=MiReporte & " REPORTE MENSUAL.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
 l1.Activate
 MsgBox "COPIA TERMINADA", vbInformation, "COPIAR"
End Sub
 

Tengo otra hoja de calculo llamada "BITÁCORA DE RECIBOS" donde tengo almacenada información en el rango A1:M1000

Ahora, lo que me gustaría hacer es que las hojas de calculo "BITÁCORA DE RECIBOS" y "REPORTE MENSUAL" copie la información en un sólo archivo, pero en diferentes hojas de calculo .xlsx con el mismo nombre

Agradezco tu valiosa ayuda, pero en el código que muy amablemente me enviaste, cuando lo ejecuto se pone en blanco microsoft excel y me reinicia todo por completo, anexo el código que me sugirió

Saludos y buen día!

Sub CREAREPORTE()
'Modificado.Por.DAM
Sheets("CAPTURA").Activate
MiReporte = Range("O7")
Set l1 = ThisWorkbook
Sheets("REPORTE MENSUAL").Copy
 Cells.Copy
 Range("A1:E100").Select
 Selection.PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, _
 SkipBlanks:=False, Transpose:=False
Set l2 = ActiveWorkbook
l1.Activate
Sheets("BITACORA DE RECIBOS").Copy After:=l2.Sheets(l2.Sheets.Count)
 Cells.Copy
 Range("A1:M1000").Select
 Selection.PasteSpecial Paste:=xlPasteValues, _
 Operation:=xlNone, _
 SkipBlanks:=False, Transpose:=False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=MiReporte & " REPORTE MENSUAL.xlsx", _
 FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
l1.Activate
MsgBox "COPIA TERMINADA", vbInformation, "COPIAR"
End Sub

1 Respuesta

Respuesta
1

No te preocupes, me debes una.

Este sería el código para copiar 2 hojas

Sub CREAREPORTE()
'Por.DAM
Sheets("CAPTURA").Activate
MiReporte = Range("O7")
Set l1 = ThisWorkbook
Sheets(Array("REPORTE MENSUAL", "BITACORA DE RECIBOS")).Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=MiReporte & "\REPORTE MENSUAL.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
l1.Activate
MsgBox "COPIA TERMINADA", vbInformation, "COPIAR"
End Sub

Saludos.DAM
No olvides finalizar la pregunta.

Ola .DAM te saludo nuevamente, al parecer creo se te escapo accidentalmente una diagonal y eso me marcaba un error al ejecutar el código, se encuentra en esta parte:

ActiveWorkbook.SaveAs Filename:=MiReporte & "\REPORTE MENSUAL.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
l1.Activate

No te preocupes, ya lo corregí y se ejecuta perfectamente. Ahora, al abrir el archivo que se ha creado con las 2 hojas, me mantiene las formulas.

Puedes de favor echarme la mano para poder obtener unicamente los datos sin las fórmulas

agradezco nuevamente tu valisiisima ayuda! :D saludos y que tengas un buen día!

Este sería el código

Sub CREAREPORTE()
'Por.DAM
Sheets("CAPTURA").Activate
MiReporte = Range("O7")
Set l1 = ThisWorkbook
Sheets(Array("REPORTE MENSUAL", "BITACORA DE RECIBOS")).Copy
Application.DisplayAlerts = False
Sheets("REPORTE MENSUAL").Cells.Copy
Sheets("REPORTE MENSUAL").Select
Range("A1").Select
Range("A1").PasteSpecial Paste:=xlValues
Sheets("BITACORA DE RECIBOS").Cells.Copy
Sheets("BITACORA DE RECIBOS").Select
Range("A1").Select
Range("A1").PasteSpecial Paste:=xlValues
ActiveWorkbook.SaveAs Filename:=MiReporte & "REPORTE MENSUAL.xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
l1.Activate
MsgBox "COPIA TERMINADA", vbInformation, "COPIAR"
End Sub

Saludos.DAM
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas