VBA – Proteger hoja, excepto algún rango.

Muchas veces nos vamos a ver obligados a dar permiso de escritura a determinados usuarios en una determina zona de la hoja de cálculo. Para esto tendremos que desproteger únicamente esa zona y mantener protegido el resto.

Un ejemplo de cómo resolver esto sería el siguiente:

VB
Private Sub CommandButton1_Click()

'Partimos de una hoja con contraseña, ej.: "4321"
'(que no la puede saber el usuario)

Dim Password As String

Password = InputBox("Introduce Contraseña")

'si el usuario indica, por ejemplo, que su
'cotraseña es = "Pepito". Entonces le dejamos
'escribir ÚNICAMENTE en la zona D10:F17

    If Password = "Pepito" Then
    ActiveSheet.Unprotect "4321"
    ActiveSheet.Range("D10:F17").Locked = False
    ActiveSheet.Protect "4321"
    Else
    MsgBox ("Contraseña Incorrecta")
    Exit Sub
    End If

End Sub

Publicado

en

por

Etiquetas:

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *