Proteger libro excel

Hola amigos, quiero proteger una hoja de excel de forma que en la primera hoja denominada "menú" me pida una clave "asesor" y si es correcta se muestren las hojas "cuentas", "gastos", "extras", "hay unas diez mas" y si no es correcta la clave no haya forma de que se puedan ver estas hojas y solo se vea la hoja "menú" y si la clave ha sido correcta que se muestren todas las hojas del libro y cuando cierre el libro se vuelvan a ocultar todas menos la hoja "menú" es lo que se me ocurre per no se como hacerlo, agradecería que me indicarais que pongo en Workbook y que pongo en un modulo si es asi, yo he llegado a poner esto en Workbook

Private Sub Workbook_Open()
Sheets("MENU").Select
Dim MiVar
MiVar = MsgBox("ACABA DE ACCEDER, al estado de cuentas", 64, "INFORMACIÓN")
End Sub
Sub cuentas()
CLAVE_cuentas = InputBox("ESCRIBA SU CLAVE DE ACCESO")
If CLAVE_cuentas = "asesor" Then
Sheets("cuentas").Visible = True
Sheets("gastos").Visible = True
Sheets("ingresos").Visible = True
Sheets("estras").Visible = True
Sheets("menu").Select
Else
MsgBox ("CLAVE INCORRECTA! - NO TIENES ACCESO")
Sheets("MENU").Select
End If
End Sub

pero no se seguir desde aquí y no se si asi como lo tengo seria muy seguro, ya que si no pones la clave y le doy a cancelar me deja mostrar las hojas ocultas.

gracias por la ayuda.

1

1 Respuesta

2.114.440 pts. En mi sitio encontraran material de ayuda, ejemplos...

Me extraña, ya te hacía con mucha más claridad en el tema macros, je je

Bien, al abrir el libro debieras solicitar la clave, x lo tanto aprovechando tu macro esto quedaría en el objeto ThisWorkbook :

Private Sub Workbook_Open()
Sheets("MENU").Select
Dim MiVar
MiVar = MsgBox("ACABA DE ACCEDER, al estado de cuentas", 64, "INFORMACIÓN")

Call cuentas
End Sub

Luego en un módulo irá la subrutina Sub cuentas()

También en el objeto thisWorkbook tenés que agregar la que vá a ocultar nuevamente las hojas al cierre:

Private

Perdón, se me escapó sin terminar:

Esto vá en el objeto ThisWorkbook. Tanto al cerrar el libro como al guardarlo se ocultan las hojas con la expresión xlVeryHidden que impide que se puedan mostrar desde la opción Formato de la hoja.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("cuentas").Visible = xlVeryHidden
Sheets("gastos").Visible = xlVeryHidden
Sheets("ingresos").Visible = xlVeryHidden
Sheets("estras").Visible = xlVeryHidden
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("cuentas").Visible = xlVeryHidden
Sheets("gastos").Visible = xlVeryHidden
Sheets("ingresos").Visible = xlVeryHidden
Sheets("estras").Visible = xlVeryHidden
End Sub

Private Sub Workbook_Open()
Sheets("MENU").Select
Dim MiVar
MiVar = MsgBox("ACABA DE ACCEDER, al estado de cuentas", 64, "INFORMACIÓN")
Call cuentas
End Sub

Sdos y no olvides finalizar la consulta.

Elsa

PD) Aún se mantiene vigente la opción 2x1 en manuales: El nuevo Excel 2007-2010 + Programación VBA juntos al valor de 1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas