proteger hoja excel

22/09/2008 - 16:53 por mariela | Informe spam
Quiero consultar como proteger pie de pagina o configuracion de impresion, si
es posible.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/09/2008 - 17:54 | Informe spam
hola, mariela !

Mostrar la cita
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
#2 mariela
22/09/2008 - 18:56 | Informe spam
Gracias por tu respuesta, lo hice pero quizas no lo hice bien porque no
obtuve resultados. El objetivo es cuando hago un informe en excel, que lo
envíe a otro usuario y no pueda editar mi nombre en el pie de pagina, para
que quede registrado que lo realicé yo en el momento de imprimirlo.
Grabé la macro, indicando en el pie de pagina mi nombre, pero la macro solo
funciona si se la ejecuta. Y si envio el libro a otro usuario, entiendo que
puede editar la configuracion de pagina y borrarlo, verdad?
No uso macros habitualmente, solo funciones del programa.
SLDS,
Mariela.

"mariela" wrote:

Mostrar la cita
#3 Héctor Miguel
22/09/2008 - 21:58 | Informe spam
hola, mariela !

Mostrar la cita
el detalle es que para lo que pretendes "proteger" es requisito el uso de las macros (y obviamente habilitar su uso)
" -> el verdadero problema... seria si tu libro se abre SIN permiso de usar las macros -?-"

y para que no se "tenga que" ejecutar la macro, la sugerencia es llamarla en el evento '_beforeprint'
(vuelve a leer el mensaje anterior para que veas el alcance de sus implicaciones)

saludos,
hector.
#4 Crixone (Crix Pizarro)
23/09/2008 - 01:23 | Informe spam
Consulta :

la informacion que necesitas bloquear esta en uuna hoja
predeterminada? si es asi y esa hoja no la cambias protegela desde las
erramientas con pass
si necesitas que parte de ella cambie debes con el boton derecho del
mouse ir a las propiedades de la celda y desprotegerla y las que
quieras bloquear dejarlas bloqueadas, asi no te podran cambiar nada.

Espero te sirva
Saludos
Ads by Google
Search Busqueda sugerida