Personalizar dimensiones de Tamaño de Papel en Excel

Dam, Estoy organizando una Macro y una de sus tareas no he logrado concluirla.

Necesito generar la instrucción que me permita dar dimensiones específicas de Alto = 21,59 cms y de Ancho = 32,56 cms La que más se aproxima es la de tamaño oficio que es de 21,59 cms x 35,56 cms que sería ".PaperSize = xlPaperLegal "; pero a partir de la segunda hoja por haber 3 cms de diferencia me van saliendo descuadradas.

1 Respuesta

Respuesta
3

No encuentro la opción para establecer las medidas de hoja.

¿Revisa si tienes en las propiedades de tu impresora la opción para seleccionar una hoja de medidas personalizadas?

DAM, muchas gracias por tu respuesta, En VBA de Word me puse a grabar Macro y al respecto me dió el siguiente resultado:

.PageWidth = CentimetersToPoints(32.56)

.PageHeight = CentimetersToPoints(21.59)

Pero en VBA de Excel me da error

En otro Foro encontré aparentemente esta solución pero igualmente me marca error:

.xlPaperLegal. Oficio (216 x 326 mm)

En cuanto a tu sugerencia Personalicé tamaño de Papel, dándole elk nombre de "Oficio5", pero no quiero que me quede predeterminada esas dimensiones y orientación de papel, sino que sea únicamente para ese libro; al personalizar me da el siguiente código al grabar la Macro:

.PaperSize = 125

Muchas gracias por la ayuda prestada.

Podemos poner una condición

nombre = thisworkbook.name

if nombre = "libroabc" then

.PaperSize = 125

else

.PaperSize = xlPaperLegal

end if

Prueba y me comentas

Disculpa mi gran ignorancia, pero en que lugar debo colocar esa condición?

Sub OficioNuevo()
'
' OficioNuevo Macro
'
'
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = ""
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.708661417322835)
.RightMargin = Application.InchesToPoints(0.708661417322835)
.TopMargin = Application.InchesToPoints(0.551181102362205)
.BottomMargin = Application.InchesToPoints(0.748031496062992)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintSheetEnd
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = 125
.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
Application.PrintCommunication = True
ActiveWorkbook.Sabe
End Sub

Lo que sucede es que no quiero dejar predeterminada la Impresora en Preferencia de Impresión con las dimensiones en la Ficha llamada "Oficio5"; El Libro de excel se llama "Orientación de Hoja.xls"

Gracias.

En lugar de esta línea

.PaperSize = 125

Pon esto

nombre = thisworkbook.name
if nombre = "Orientación de Hoja" then
.PaperSize = 125
else
.PaperSize = xlPaperLegal
end if

Excelente DAM, esa era la solución, como siempre en tiempo Record y de manera concreta las soluciones que planteas, Sos un Genio para esto.

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas