Este código nos resulto muy útil, cuando teníamos que generar reportes en Excel con macros, nosotros generábamos el reporte y copiábamos las hojas en otro Excel para que el usuario trabajara con el
Sub CopiarHoja(Hoja As Integer)
Dim AppExceldestino As Object
Set AppExceldestino = New Excel.Application
AppExceldestino.Workbooks.Add
AppExceldestino.Workbooks(1).Activate
Dim i As Integer
Application.CutCopyMode = False
For i = 1 To Hoja
ActiveWorkbook.Sheets(i).Activate
AppExceldestino.Sheets(i).Select
ActiveWorkbook.ActiveSheet.Range("A1:A1").Select 'se para en la primera fila
ActiveWorkbook.ActiveSheet.Range("A1:U65").Select 'se selecciona el rango de la hoja a copiar
ActiveWorkbook.ActiveSheet.Application.CutCopyMode = False
Selection.Copy 'se copia el rango selecionado
'Abro el destino y pego su contenido
AppExceldestino.ActiveWorkbook.ActiveSheet.Cells(1, 1).Select 'Selecciono la primera linea del documento nuevo
AppExceldestino.ActiveWorkbook.ActiveSheet.Paste 'Lo pego
ActiveSheet.Select
Selection.Copy
AppExceldestino.ActiveSheet.Paste
AppExceldestino.Visible = True
Next
AppExceldestino.Sheets(3).Delete
AppExceldestino.Sheets(1).Activate
AppExceldestino.ActiveWorkbook.SaveAs Filename:="Ruta", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False 'Se guarda el archivo con el nombre "Ruta"
AppExceldestino.Workbooks.Close ' Se cierra
ActiveWorkbook.Sheets(1).ActivateActiveWorkbook.Activate
End Sub
No hay comentarios:
Publicar un comentario