Buscar

Mostrando entradas con la etiqueta Macros. Mostrar todas las entradas
Mostrando entradas con la etiqueta Macros. Mostrar todas las entradas

jueves, 26 de junio de 2008

Copiar hojas de Excel con macros (VBA)

Este código copia una hoja de Excel a otro documento de Excel.
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