Skip to main content

¿Cómo establecer contraseñas para proteger hojas de cálculo individuales para diferentes usuarios en Excel?

Author: Xiaoyang Last Modified: 2025-06-04

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:

A screenshot of the Main sheet in Excel where the first worksheet is created

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

A screenshot of the Visual Basic for Applications window with the VBA code to set passwords for individual sheets

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:

A screenshot of the prompt box asking for a user name to create a new sheet in Excel

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:

A screenshot of the prompt box asking for a password to protect the newly created sheet in Excel

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:

A screenshot of the newly created sheet named after the user in Excel

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:

A screenshot of the Save As dialog box in Excel, showing the Save as type dropdown list for Excel Macro-Enabled Workbook (*.xlsm)

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.

A screenshot of the Enable Content button in Excel to activate the VBA code

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

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

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!