Macro desde código de hoja

10/02/2010 - 16:36 por Oszkar M^ | Informe spam
Hola,

Tengo la siguiente macro que hace que la única hoja de un libro se proteja
con una clave al abrirlo. También permite que las columnas agrupadas se
expandan o se oculten sin que de error por estar protegidas. Este código lo
tengo puesto en "This Workbook". Me gustaría saber si hay forma de que la
macro funcione si la copio en el código de la hoja correspondiente; esto es
por que he intentado mover la hoja a otro libro (de uso público), pero la
macro se queda en el libro original, con lo que al expandir u ocultar las
columnas agrupadas en este nuevo libro, me da error.

Muchas gracias a todos por la ayuda.

Pd. La macro fue una invención de alguien en este foro (no recuerdo quien),
a quien le estoy muy agradecido.


Private Sub Workbook_Open()
With ActiveSheet
.EnableOutlining = True
.Protect Password:="1234", UserInterfaceOnly:=True
End With
End Sub
Saludos,

Oszkar M^
Sevilla - España
 

Leer las respuestas

#1 Héctor Miguel
11/02/2010 - 05:48 | Informe spam
hola, Oszkar !

los eventos de apertura corresponden al objeto ThisWorkbook (o a un procedimiento Sub Auto_Open en un modulo estandar)
para lo que necesitas (creo que) valdria la pena si pruebas con el siguiente codigo en el modulo de "esa" hoja:

Private Sub Worksheet_Activate()
Confirma_proteccion
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Confirma_proteccion
End Sub
Private Sub Confirma_proteccion()
If Me.ProtectContents Then Exit Sub
Me.EnableOutlining = True
Me.Protect Password:="1234", UserInterfaceOnly:=True
End Sub

saludos,
hector.

__ OP __
... la siguiente macro... hace que la unica hoja de un libro se proteja con una clave al abrirlo.
Tambien permite que las columnas agrupadas se expandan o se oculten sin que de error por estar protegidas.
Este codigo lo tengo puesto en "This Workbook".
Me gustaria saber si hay forma de que la macro funcione si la copio en el codigo de la hoja correspondiente
esto es por que he intentado mover la hoja a otro libro (de uso publico)
pero la macro se queda en el libro original, con lo que al expandir u ocultar las columnas agrupadas en este nuevo libro, me da error.

Private Sub Workbook_Open()
With ActiveSheet
.EnableOutlining = True
.Protect Password:="1234", UserInterfaceOnly:=True
End With
End Sub

Preguntas similares