Proteger Area de Impresión

21/10/2008 - 19:27 por Angelo Vernaza | Informe spam
Buenos Días,

Cómo c puede hacer para proteger el area de impresión de un documento,
de tal forma que solo impriman la selección que yo le di?

Saludos,
Angelo V.-

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/10/2008 - 00:22 | Informe spam
hola, Angelo !

Como c puede hacer para proteger el area de impresión de un documento
de tal forma que solo impriman la seleccion que yo le di?



graba una macro mientras configuras la impresion (para que veas todas las propiedades implicadas)...
y (por ejemplo) puedes dejar al usuario que modifique (o... realmente que INTENTE modificar) lo que quiera pero...

-> por codigo TU restableces/ajustas/decides/indicas/... las propiedades (del .PageSetup) a los defaults que quieras

-> (solo toma en cuenta que) -> TODA propiedad QUE NO ESTABLEZCAS (de manera expresa y NO implicita) en el codigo...
-> seran propiedades que el usuario SI podra manipular (o re/establecer) a su libre voluntad y criterio
(p.e. si NO limpias por codigo la propiedad .PrintTitleRows -> el usuario podria establecer los suyos)

-> (ademas) no importa si el usuario las cambia (en la vista preliminar)... al momento de imprimir... volveran TUS propiedades
(asi que)... asegurate de establecer TU las propiedades necesarias (margenes, orientacion, area, calidad, etc. etc. etc.)

-> el verdadero problema... seria si tu libro se abre SIN permiso de usar las macros -?-

-> no olvides que son (solo) ejemplos... y que adaptarlo a tu real necesidad... dependera de los comentarios que hagas
el siguiente ejemplo supone que la configuracion de impresion es solo para la hoja1

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

1) en el modulo de codigo del libro (ThisWorkbook) ==Private Sub Workbook_BeforePrint(Cancel As Boolean)
If HojaEnGrupo("hoja1") Then Configura_mi_hoja
End Sub

2) en un modulo de codigo normal ==Option Private Module
Function HojaEnGrupo(ByVal Nombre As String) As Boolean
Dim Hoja As Worksheet
For Each Hoja In ActiveWindow.SelectedSheets
If LCase(Hoja.Name) = LCase(Nombre) Then HojaEnGrupo = True: Exit For
Next
End Function
Sub Configura_mi_hoja()
With Worksheets("hoja1").PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
.PrintArea = "$a$1:$f$20"
.LeftHeader = Format(Date, "mm/dd/yy")
.RightFooter = "Hoja 35"
' no olvides controlar/incluir/agregar/... TODAS las propiedades necesarias
End With
End Sub
Respuesta Responder a este mensaje
#2 Angelo Vernaza
22/10/2008 - 15:47 | Informe spam
On Oct 21, 5:22 pm, "Héctor Miguel"
wrote:
hola, Angelo !

> Como c puede hacer para proteger el area de impresión de un documento
> de tal forma que solo impriman la seleccion que yo le di?

graba una macro mientras configuras la impresion (para que veas todas las propiedades implicadas)...
y (por ejemplo) puedes dejar al usuario que modifique (o... realmente que INTENTE modificar) lo que quiera pero...

-> por codigo TU restableces/ajustas/decides/indicas/... las propiedades (del .PageSetup) a los defaults que quieras

-> (solo toma en cuenta que) -> TODA propiedad QUE NO ESTABLEZCAS (de manera expresa y NO implicita) en el codigo...
    -> seran propiedades que el usuario SI podra manipular (o re/establecer) a su libre voluntad y criterio
    (p.e. si NO limpias por codigo la propiedad .PrintTitleRows -> el usuario podria establecer los suyos)

-> (ademas) no importa si el usuario las cambia (en la vista preliminar)... al momento de imprimir... volveran TUS propiedades
    (asi que)... asegurate de establecer TU las propiedades necesarias (margenes, orientacion, area, calidad, etc. etc. etc.)

-> el verdadero problema... seria si tu libro se abre SIN permiso de usar las macros    -?-

-> no olvides que son (solo) ejemplos... y que adaptarlo a tu real necesidad... dependera de los comentarios que hagas
    el siguiente ejemplo supone que la configuracion de impresion es solo para la hoja1

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

1) en el modulo de codigo del libro (ThisWorkbook) ==> Private Sub Workbook_BeforePrint(Cancel As Boolean)
  If HojaEnGrupo("hoja1") Then Configura_mi_hoja
End Sub

2) en un modulo de codigo normal ==> Option Private Module
Function HojaEnGrupo(ByVal Nombre As String) As Boolean
  Dim Hoja As Worksheet
  For Each Hoja In ActiveWindow.SelectedSheets
    If LCase(Hoja.Name) = LCase(Nombre) Then HojaEnGrupo = True: Exit For
  Next
End Function
Sub Configura_mi_hoja()
  With Worksheets("hoja1").PageSetup
    .PrintTitleRows = ""
    .PrintTitleColumns = ""
    .PrintArea = "$a$1:$f$20"
    .LeftHeader = Format(Date, "mm/dd/yy")
    .RightFooter = "Hoja 35"
    ' no olvides controlar/incluir/agregar/... TODAS las propiedades necesarias
  End With
End Sub



Excelente Gracias,

Pero cómo hago si lo quiero para varias hojas, y las hojas van
configuradas diferentes, la impresión no se hace en grupo, sino
manualmente cada hoja.
Saludos,
Angelo V.-
Respuesta Responder a este mensaje
#3 Héctor Miguel
22/10/2008 - 18:57 | Informe spam
hola, Angelo !

Pero como hago si lo quiero para varias hojas, y las hojas van configuradas diferentes
la impresion no se hace en grupo, sino manualmente cada hoja...



1) (obviamente) deberas tener una macro para la configuracion de cada hoja

2) en el evento '_beforeprint' (en el ThisWorkbook) podrias llamar a la macro que corresponda a la hoja activa (p.e.)

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Select Case LCase(ActiveSheet.Name)
Case "hoja1": Macro_Configura_Hoja1
Case "totales": Macro_Configura_Hoja_Totales
' mas "cases" ... aqui '
End Select
End Sub

saludos,
hector.

__ OP __
Como c puede hacer para proteger el area de impresión de un documento
de tal forma que solo impriman la seleccion que yo le di?



graba una macro mientras configuras la impresion (para que veas todas las propiedades implicadas)...
y (por ejemplo) puedes dejar al usuario que modifique (o... realmente que INTENTE modificar) lo que quiera pero...

-> por codigo TU restableces/ajustas/decides/indicas/... las propiedades (del .PageSetup) a los defaults que quieras

-> (solo toma en cuenta que) -> TODA propiedad QUE NO ESTABLEZCAS (de manera expresa y NO implicita) en el codigo...
-> seran propiedades que el usuario SI podra manipular (o re/establecer) a su libre voluntad y criterio
(p.e. si NO limpias por codigo la propiedad .PrintTitleRows -> el usuario podria establecer los suyos)

-> (ademas) no importa si el usuario las cambia (en la vista preliminar)... al momento de imprimir... volveran TUS propiedades
(asi que)... asegurate de establecer TU las propiedades necesarias (margenes, orientacion, area, calidad, etc. etc. etc.)

-> el verdadero problema... seria si tu libro se abre SIN permiso de usar las macros -?-

-> no olvides que son (solo) ejemplos... y que adaptarlo a tu real necesidad... dependera de los comentarios que hagas
el siguiente ejemplo supone que la configuracion de impresion es solo para la hoja1

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

1) en el modulo de codigo del libro (ThisWorkbook) ==> Private Sub Workbook_BeforePrint(Cancel As Boolean)
If HojaEnGrupo("hoja1") Then Configura_mi_hoja
End Sub

2) en un modulo de codigo normal ==> Option Private Module
Function HojaEnGrupo(ByVal Nombre As String) As Boolean
Dim Hoja As Worksheet
For Each Hoja In ActiveWindow.SelectedSheets
If LCase(Hoja.Name) = LCase(Nombre) Then HojaEnGrupo = True: Exit For
Next
End Function
Sub Configura_mi_hoja()
With Worksheets("hoja1").PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
.PrintArea = "$a$1:$f$20"
.LeftHeader = Format(Date, "mm/dd/yy")
.RightFooter = "Hoja 35"
' no olvides controlar/incluir/agregar/... TODAS las propiedades necesarias
End With
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida