Ayuda con macro excel

Tengo un libro de excel(libro origen) y quiero crear una macro en el, la cual cree un nuevo libro de excel llamado igual (libro destino, pero guardado en otra ubicación)y le transfiera solo los datos que establezco como área de impresión en el libro origen.
Como lo puedo hacer.
Te agradecería mucho que me ayudaras llevo mucho tiempo con esto y no lo logro solucionar.
Un saludo.
1

1 Respuesta

942.445 pts. "Todos somos genios. Pero si juzgas a un pez por su...
Te paso una macro; te comento que en principio NO vas a poder llamarlo igual pues Excel NO te deja tener abiertos 2 libros al mismo tiempo con el mismo nombre (vas a tener que renombrarlo luego o algo parecido; si te parece luego vemos esta parte)
La macro sería más o menos así
Sub Macro1()
Dim stNombre As String
Dim stPath As String
stNombre = "_" & ThisWorkbook.Name
stPath = "c:\ACA VA TU DIRECTORIO\"
Application.Goto Reference:="Print_Area"
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
ActiveWorkbook.SaveAs Name:=stPath & stNombre
ActiveWorkbook.Close False
End Sub
Primero muchas gracias por la atención prestada Gustavo.
He copiado el código tal cual y me da un error de compilación, no se encontró el argumento con nombre. Subraya sub macro1()en amarillo y name:= en azul
Que puede ser
Otra cosa le he borrado Name:=stPath & stNombre y ya no me da el error. Me crea otro libro en mis documentos con el área de impresión. Hasta ahí todo bien. Pero las celdas me las copia en la columna A siendo que estaban en la columna D. Hay alguna forma de que copie las columnas tal cual.
Un saludo y muchas gracias
Podes ver con algo como (luego del application. goto Reference...)
col = ActiveCell.Column
fila = ActiveCell.Row
y luego del (Workbook.Add pero antes del PasteEspecial) pon:
ActiveSheet.cells(fila, col).Select
(Con esto se posicionará en la misma celda que está en el archivo original)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas