Bloquear una celda no hace nada hasta que se protege la hoja, y la contraseña de una hoja evita accidentes, no personas. Este tutorial protege el cotizador del tutorial anterior: qué celdas se dejan abiertas, qué fórmulas se ocultan, por qué las hojas de datos quedan sin proteger y un control que detecta la sobrescritura que se cuela por el candado.

Qué detiene cada protección

Excel tiene cuatro capas que se suelen confundir. Solo la última mantiene cerrado un archivo.

Capa Dónde Detiene No detiene
Proteger hoja Revisar, Proteger hoja Escribir sobre celdas bloqueadas A quien la desprotege
Fórmulas ocultas Formato de celdas, Proteger Ver la fórmula en la barra de fórmulas Ver el valor
Proteger libro Revisar, Proteger libro Renombrar, mover, ocultar o borrar hojas Editar celdas
Cifrar con contraseña Archivo, Información, Proteger libro Abrir el archivo Nada, una vez abierto

Bloquea el cotizador en dos minutos

Todas las celdas están Bloqueadas de origen, y el ajuste no surte efecto hasta que se protege la hoja; el cuadro de diálogo lo dice. Así que el trabajo es al revés de lo que suena: se desbloquean las celdas donde la gente captura.

Formato de celdas, pestaña Proteger, con la casilla Bloqueada y el aviso de que no surte efecto hasta proteger la hoja / Format Cells, Protection tab, with the Locked box and a note on protecting the sheet

  1. Selecciona las celdas de captura con CTRL + clic: B8, B11, B13, B14 y H10. Presiona CTRL + 1, abre la pestaña Proteger y desmarca Bloqueada.
  2. Selecciona las fórmulas de precios, como los totales de H9 y H11:H13, presiona CTRL + 1 y marca Oculta.
  3. Ve a Inicio, Formato, Proteger hoja. Deja la contraseña en blanco mientras pruebas. Las capturas de este post son del libro del actualizador de impuestos; el menú y los cuadros son los mismos.

Menú Inicio, Formato con la opción Proteger hoja en el grupo Protección / Home, Format menu with Protect Sheet under Protection

Cuadro Proteger hoja con la contraseña y Seleccionar celdas bloqueadas y desbloqueadas marcadas / Protect Sheet dialog with the password box and the two Select options checked

Las dos opciones Seleccionar quedan marcadas para que se pueda hacer clic en cualquier celda. Marca los demás permisos solo para lo que la gente de verdad hace: Usar Autofiltro si filtran una lista, por ejemplo, y deja el resto sin marcar. Ahora escribe en B14 y las cantidades cambian. Prueba con una celda de fórmula y Excel se niega:

Mensaje de Excel que dice que la celda o el gráfico está en una hoja protegida y hay que desprotegerla / Excel message saying the cell or chart is on a protected sheet and must be unprotected

Una celda Oculta muestra su valor, pero la barra de fórmulas queda vacía:

Hoja del libro del actualizador con una celda oculta seleccionada y la barra de fórmulas vacía / Tax updater sheet with a hidden cell selected and an empty formula bar

Deja sin proteger las hojas de datos

En el cotizador solo se protege la hoja Cotizador. Clientes, Materiales, Productos y Emisores son Tablas, y una Tabla no crece en una hoja protegida: protege Clientes, intenta agregar un cliente debajo del último renglón y Excel no la extiende. Protege la hoja donde se captura y deja sin proteger las que se extienden; el libro trae una hoja Mapa que dice qué está protegido en cada hoja y por qué.

Un control para lo que el candado no ve

Una contraseña en blanco se quita con un clic. Si alguien desprotege la hoja y escribe un número sobre un total, nada en Excel lo muestra. El control de fórmulas de H14 sí:

=SI(Y(ESFORMULA(H9),ESFORMULA(H11),ESFORMULA(H12),ESFORMULA(H13),ESFORMULA(A17),ESFORMULA(D17),ESFORMULA(E17)),"OK","Sobrescrita")

Revisa las celdas con fórmula y la celda ancla de cada lista que se derrama. Escribe 0 sobre H12 y dice Sobrescrita; deshaz y regresa a OK.

Si una macro edita la hoja protegida

Una macro que cambia una hoja protegida tiene que desprotegerla primero. Si el código falla a la mitad, la hoja se queda sin protección. Vuelve a proteger en una etiqueta de limpieza:

Sub ActualizarCotizador()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Cotizador")
    ws.Unprotect "tucontraseña"
    On Error GoTo Limpieza
    ' código que cambia la hoja
Limpieza:
    ws.Protect "tucontraseña", DrawingObjects:=False, Scenarios:=False
    If Err.Number <> 0 Then MsgBox Err.Description
End Sub

DrawingObjects:=False y Scenarios:=False dejan usables los controles de formulario. Una contraseña escrita en la macro se ve igual que la macro.

Hoja Cotizador con las celdas de captura B8, B11, B13, B14 y H10 desbloqueadas, en azul sobre fondo amarillo claro / Cotizador sheet with the unlocked input cells B8, B11, B13, B14 and H10 in blue on a pale yellow fill

Hoja Cotizador con la celda de totales H9 seleccionada, la barra de fórmulas vacía y el control de fórmulas en OK / Cotizador sheet with the totals cell H9 selected, an empty formula bar and the formula check reading OK

Límites

  • La contraseña de una hoja no es seguridad. Evita accidentes; quien tiene el archivo y algo de empeño puede quitarla. No confíes en ella para datos confidenciales.
  • Solo Cifrar con contraseña mantiene cerrado el archivo. Si olvidas esa contraseña, el archivo se pierde.
  • Las fórmulas ocultas siguen mostrando su valor. No ocultes una fórmula que un revisor o un auditor necesita seguir.
  • Proteger libro bloquea la estructura, no las celdas. Detiene los cambios de hojas; no detiene las ediciones.
  • El archivo no lleva contraseña a propósito, para que lo estudies. Ponle una antes de compartirlo con un equipo.
  • Ocultar una hoja tampoco la protege. Lo explico en Ocultar una hoja en Excel no es protegerla.

Papel de trabajo

Descarga el papel de trabajo del cotizador protegido, con datos ficticios, sin registro y sin correo. Trae un Mapa de lo que está protegido en cada hoja y nueve pruebas guiadas. El cotizador se arma en Cotizador en Excel: eliges el producto y la lista de materiales se arma sola.

Si quieres un libro protegido para tu equipo, platiquemos.