Quiero mantener el área de impresión de Excel con Macros

He realizado este cotizador en excel https://drive.google.com/file/d/0B4aBa512CyRcWGpuM3E2RmhkQkU/view?usp=sharing . La clave del archivo es AWC2017PF1 y la clave de las hojas de calculo protegidas es primefa123. El problema es que en mi máquina genera de manera correcta el pdf con los margenes establecidos, pero en otras computadoras los márgenes varían y generan un pdf espantoso. ¿Qué debo hacer? Me gustaría que los margenes se mantengan así:

1 Respuesta

Respuesta
1

.02.05.17

Buenas noches, Patricio

La solución será aplicable a cualquier equipo entrando -para cada hoja a exportar a pdf- a la configuración de página y haciendo lo siguiente:

Donde dice "Ajustar a" dejar en blanco la casilla donde dice "... de alto" (marcada en amarillo)

Luego Aceptar y la hoja se adaptará al ancho de hoja que se haya definido.

Es probable que tengas que revisar si los saltos de página son los correctos, luego de haber hecho este ajuste en cada hoja. Con ello prescindirás de que se ejecute una macro.

.

¿Tu crees que haya una solución automática? Las personas que manejarán el excel no las conozco y será difícil explicarles

.

Hola, Patricio

En realidad, no deben hacer nada. Esa configuración se la aplicas a todas las hojas ANTES de publicar el archivo a los usuarios y quedará así para todos ellos.

De todos modos, si quieres que aplique el formato a todas las hojas al abrir el libro, puedes usar la siguiente rutina.

Para que funcione, activa el editor de Visual Basic (presiona Alt+F11) y en el panel de la izquierda busca la hoja que dice "ThisWorkbook" (o "EsteLibro" según la versión")

Copia el código siguiente y pégale en el panel desplegado a la derecha de su Editor de Visual Basic:

Private Sub Workbook_Open()
Exceptuar = "Instrucciones" 'hoja donde NO deseas aplicar la configuración
'
For Each LaHoja In Sheets
If LaHoja.Name <> Exceptuar Then
    With LaHoja.PageSetup
        .PaperSize = xlPaperA4
        .FitToPagesWide = 1
        .FitToPagesTall = 0
        .LeftMargin = Application.InchesToPoints(0.196850393700787)
        .RightMargin = Application.InchesToPoints(0.275590551181102)
        .TopMargin = Application.InchesToPoints(0.354330708661417)
        .BottomMargin = Application.InchesToPoints(0.275590551181102)
        .HeaderMargin = Application.InchesToPoints(0)
        .FooterMargin = Application.InchesToPoints(0)
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
    End With
End If
End Sub

Esta configurará todas las hojascomo te indiqué y asignará un tamaño A4 a las hojas.

Dejé una variable para que incluyas alguna que NO quieras que tenga esa configuración. Si quisieras aplicarla a todas, coloca allí un nombre inexistente.

Espero que sea lo que buscas.

Un abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas