Personalizar o configurar hoja con macro

Necesito una macro que me ayude a configurar hoja

Alto, ancho y margenes.

Donde yo pueda modificarlos si es necesario

1 Respuesta

Respuesta
2

Podes obtener tus propias instrucciones con estos pasos:

- Encendé la grabadora de macros

-Ajustá el diseño de página a gusto

- Detené la grabadora

- En un módulo encontrarás las instrucciones, algo similar a esta:

Sub ConfHoja()
'x Elsamatilde - extraída del manual 500Macros
Izq = 0
Der = 0
Sup = 0
Inf = 0
With ActiveSheet.PageSetup
    'Configuración de márgenes
    .LeftMargin = Application.CentimetersToPoints(Izq)
    .RightMargin = Application.CentimetersToPoints(Der)
    .TopMargin = Application.CentimetersToPoints(Sup)
    .BottomMargin = Application.CentimetersToPoints(Inf)
    'orientación
    .Orientation = xlLandscape   'horizontal
    'tamaño de papel
    .PaperSize = xlPaperA4         'A4
End With
End Sub

Observa que dejo definidos los valores para los márgenes. Estos pueden tomarse de celdas auxiliares, por ej:

Izq = sheets("Hojax").[A1] y así con el resto.

Hola

Hice lo que me sugirió pero me da error en donde dice papersize.

Lo de los margenes si funciona.

Probé esto pero no me funciono:

.PageHeight = CentimetersToPoints(21)
.PageWidth = CentimetersToPoints(33)

Como podría hacer algo similar a eso.

Saludos

Haciendo lo que te comenté al inicio de mi respuesta: utilizar la grabadora y obtener las instrucciones de tu propia configuración. Luego si hiciera falta algún ajuste, dejame escrita aquí la macro obtenida y lo que deseas modificar.

Porque el tema configuración depende de tu equipo, qué tipo de papel utilizas y cosas así,

Mi macro es solo un ejemplo de cómo utilizar luego los valores en forma de 'variables' para poder modificar a gusto.

Sdos!

hola

esto me sale al grabar

Sub Macro1()
'
' Macro1 Macro
'

'
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = 257
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
End Sub

Te acabo de enviar hoja configurada (y con la macro) en tamaño lo más aproximada a los valores que me comentas por mail. Si tu impresora no presenta opciones de papel oficio busca aquel que se aproxime en tamaño.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas