Hoy por la mañana escribieron en mi blog, preguntándome como evitar, dentro de un archivo de Excel, que seleccionen una hoja de Excel.
No se quiere proteger la hoja, ni las celdas, sino que lo que se busca, es que una persona cuando cambie a una hoja específica, aparezca un cuadro de texto solicitando una contraseña.
Si la contraseña es correcta, entonces que permita el acceso a la hoja, y si no es correcta simplemente no permita el acceso a dicha hoja.
Vamos a poner el siguiente caso:
Paso 1: Tenemos un archivo de Excel con 3 hojas:
Paso 2: En Excel presionamos las teclas ALT+F11 (en cualquier versión del Excel es igual)
Al presionar estas teclas nos abrirá el Visual Basic for Application (VBA), como mostramos en la siguiente imagen:
En el Explorador de Proyecto, hacemos doble clic en el objeto ThisWorkBook.
Paso 3: En la pantalla en blanco que nos apareció copiaremos el siguiente código:
Public HojaInicial As Worksheet
Public HojaActual As Worksheet
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Set HojaActual = Sh
CompruebaHoja
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Set HojaInicial = Sh
End Sub
Sub CompruebaHoja()
Application.EnableEvents = False
HojaInicial.Select
'En la siguiente linea debo colocar el nombre de la Hoja, reemplazando Hoja2, NO BORRAR las comillas
If HojaActual.Name = "Hoja2" Then
Respuesta = InputBox("Ingrese la contraseña para poder entrar en la hoja")
'En la siguiente linea cambias la contraseña
If Respuesta = "Secreto" Then
HojaActual.Select
Else
MsgBox "No tiene autorización para ingresar a esta hoja"
Application.EnableEvents = True
Exit Sub
End If
Else
HojaActual.Select
End If
Application.EnableEvents = True
End Sub
Paso 4: Este código lo que hace es darle una contraseña de acceso a la "Hoja2", la contraseña es "Secreto".
Si desea cambiar el nombre de la hoja, cambie la linea donde indica Hoja2.
Si desea cambiar la contraseña, cambie la palabra Secreto
Paso 5: Cerramos el Visual Basic, y regresamos al Excel. Cuando hagamos clic en la "Hoja2" nos aparecerá el siguiente cuadro:
Debemos introducir la palabra Secreto (Ojo con S mayúscula), si deseamos ingresar a la Hoja2, sino no podremos ingresar a dicha Hoja.
Nota Importante: Como hemos escrito código en Visual Basic, el archivo debe guardarse como tipo: "Excel habilitado para macros", o guardarlo como versión "Excel 97-2003".
Espero que les haya servido, cualquier consulta no duden en indicarmelo y con gusto los ayudo.
Saludos cordiales,
Ing. Enrique Neciosup Morales
informes@pcvipcr.com
Hola, tu publicación me sirvio mucho mucho, sin embargo tengo una duda es que si la base de datos manera información muy delicada y alguien hace la operación aquí indicada ya sabrán cual es la clave para la hoja y se puede acceder, hay alguna manera de bloquear este acceso también.
ResponderBorrarMuchas gracias