¿Cómo establecer contraseñas para proteger hojas de cálculo individuales para diferentes usuarios en Excel?
En Excel, puedes establecer diferentes contraseñas para diferentes hojas de cálculo; esto significa que un usuario puede realizar cambios en una hoja de cálculo con una contraseña, y otro podría usar una contraseña diferente para realizar cambios en otra hoja. Pero, a veces, solo quieres que cada usuario pueda ver y acceder a su propia hoja. ¿Es posible resolver esto en Excel?
Para proteger cada hoja de cálculo individualmente y limitar el acceso a las hojas por parte de los usuarios, aplica el siguiente código VBA:
1. Abre un nuevo libro de trabajo y crea una nueva hoja llamada “Hoja de cálculo principal”, ver captura de pantalla:
2. Luego, presiona las teclas "Alt" + "F11" para abrir la ventana "Microsoft Visual Basic para Aplicaciones", haz doble clic en "EsteLibro" en el panel izquierdo "Proyecto-VBAProject" para abrir un módulo de código en blanco, y luego copia y pega el siguiente código VBA en la ventana de código, ver captura de pantalla:
Código VBA: Establecer contraseñas para proteger hojas individuales por usuarios
Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
If xUserName = "" Then
Exit Sub
End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
If xPass = "" Then
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Else
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
If xWSh.Name = xUserName Then
xBolH = True
Exit For
End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
If xWSh.Name <> "Main" Then
xWSh.Visible = xlSheetVeryHidden
End If
Next xWSh
ActiveWorkbook.Save
End Sub
3. Luego, coloca el cursor al final del script "Private Sub Workbook_Open()" y presiona la tecla "F5" para ejecutar este código. Ahora, en el cuadro de diálogo emergente, introduce el nombre de usuario para el cual deseas crear una hoja, ver captura de pantalla:
4. Luego, haz clic en el botón "Aceptar", en el siguiente cuadro de diálogo, introduce una contraseña para proteger esta hoja, ver captura de pantalla:
5. Continúa haciendo clic en el botón "Aceptar", y se creará inmediatamente una nueva hoja con el nombre del usuario, y puedes crear los datos para ese usuario según sea necesario. Ver captura de pantalla:
6. Repite los pasos 3 a 5 anteriores para crear otras hojas una por una según lo desees.
7. Después de crear las hojas, guarda el libro actual haciendo clic en "Archivo" > "Guardar como". En el cuadro de diálogo "Guardar como", especifica un nombre de archivo y luego selecciona el formato "Libro de Excel habilitado para macros (*.xlsm)" en la lista desplegable "Especificar formato de guardado", ver captura de pantalla:
8. Luego haz clic en el botón Guardar para guardar este archivo.
9. Luego cierra el libro y ábrelo nuevamente, luego, haz clic en "Habilitar contenido" en la parte superior de la barra de fórmulas para activar el código.
10. Ahora, aparecerá un cuadro de diálogo para recordarte que introduzcas el nombre de usuario y la contraseña para abrir la hoja específica por un usuario determinado.
11. Por último, al enviar este libro a otros usuarios, debes enviarles el nombre de usuario y la contraseña. Solo podrán abrir y editar sus propias hojas, y no tendrán autorización para ver otras hojas de cálculo.
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!