Dentro de unamaro ¿Cómo copiar (criar nuevo libro) 1 SOLO la PÁGINA?

En excel, en una determinada macro para criar un nuevo libro, SOLO de una página, (NO hoja)

Según entiendo, en mi Excel 2013 la página dentro de una hoja tiene rango A1:G47 siempre y cuando el ZOOM sea lo normal, 100%, donde cada columna tiene de ancho 10,71 y alto de filas 15, esta es la página aunque con el zoom 75% también cconserva el mismo rango

1 Respuesta

Respuesta
1

H o l a:

Lo importante es saber el rango que quieres copiar, si el rango que quieres copiar es A1:G47, entonces esta es la macro:

Sub CrearLibro()
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    'Crea un nuevo libro
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    '
    ruta = ThisWorkbook.Path & "\"
    nuev = ruta & "nuevo.xlsx"
    'Copia el rango
    h1.Range("A1:G47").Copy h2.[A1]
    'Guarda el nuevo libro como xlsx
    l2.SaveAs Filename:=nuev, FileFormat:=xlOpenXMLWorkbook
    l2.Close
    MsgBox "Archivo guardado en: " & nuev
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

Sal u dos

Hola Dante

Veré si logro adaptarla a la anterior que es la que me interesa por la ruta existente y me cría la subCarpeta.

No me hice entender sobre la determinada macro. Esta determinada macro es la de la pregunta anterior.

Sub crearDir()
'Por.Dante Amor Crear carpeta y guardar archivo como xlsx
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = "C:\0" & "\" 'o tambien  'ruta = ThisWorkbook.Path & "\"
    carp = Range("E8")
    Set h1 = Sheets(1)
    nbr = h1.Name & "_" & h1.Range("J8") & " " & h1.Range("K9")
    '
    If Dir(ruta & carp, vbDirectory) = "" Then
        MkDir ruta & carp
    End If
    'Copia todas las hojas a un nuevo libro
        Sheets.Copy 'Para 1 sola hoja: Sheets(1).Copy
    'Guarda el nuevo libro como xlsx
    nuevo = ruta & carp & "\" & nbr & ".xlsx"
    'Para 1 sola hoja: Sheets(1).SaveAs Filename:=
    ActiveWorkbook.SaveAs Filename:=nuevo, _
        FileFormat:=xlOpenXMLWorkbook, ReadOnlyRecommended:=False, _
        CreateBackup:=False
    ActiveWorkbook.Close
    MsgBox "Archivo guardado exitosamente en: " & nuevo
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

En esta misma es donde quiero la rutina para que solo copie (guarde en un nuevo libro el rango definido en la macro. Este rango puedes agregarle cualquier que yo despues lo cambio segun la necesidad.

Toda esta está de maravilla, solo cambiare de hoja a rango o de libro a rango, nada más eso

Me confundí de pregunta, perdón.

Esta pregunta si es SOLO para página, no rango ni hoja ni libro.

¿Existe esa posibilidad dentro de una macro en Excel? ¿Para qué copie solo página de hoja?.

Scabes que una hoja da muchas páginas, claro esta que al copiar a nuevo libro, copia el rango ocupado, sea una o más páginas, para ello el rango ("¿?:¿?") definido en macro pero si existe sin definir rango, quisiera saber como

Te anexo la macro para copiar la página 1

Sub CrearLibro()
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    'Crea un nuevo libro
    Set l2 = Workbooks.Add
    Set h2 = l2.Sheets(1)
    '
    ruta = ThisWorkbook.Path & "\"
    nuev = ruta & "nuevo.xlsx"
    'Copia página 1
    f = h1.HPageBreaks(1).Location.Row - 1
    c = h1.VPageBreaks(1).Location.Column - 1
    h1.Range(h1.Cells(1, 1), h1.Cells(f, c)).Copy h2.[A1]
    'Guarda el nuevo libro como xlsx
    l2.SaveAs Filename:=nuev, FileFormat:=xlOpenXMLWorkbook
    l2.Close
    MsgBox "Archivo guardado en: " & nuev
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas