Cómo desproteger hoja antes de ejecutar una rutina y protegerla después de ejectutarla

Relacionado con una respuesta tuya anterior, en el siguiente código que, tan amablemente me has adaptado, como puedo desproteger esta hoja antes de ejecutar la rutina y protegerla, una vez ejecutada.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Act.Por.Dante Amor
     Application.ScreenUpdating = False
     If Not Intersect(Target, Range("E:E")) Is Nothing Then
        Select Case Target.Value
            Case "Anulada":             windex = 6:  wfont = 1: wbold = False
            Case "En tramitación":      windex = 0:  wfont = 1: wbold = False
            Case "No aceptada":         windex = 6:  wfont = 1: wbold = False
            Case "Realizada":           windex = 10: wfont = 2: wbold = True
            Case "Traspasada a RRII":   windex = 11: wfont = 2: wbold = True
        End Select
        With Range("A" & Target.Row & ":F" & Target.Row)
            .Interior.ColorIndex = windex
            .Font.ColorIndex = wfont
            .Font.Bold = wbold
        End With
    End If
    Application.ScreenUpdating = True
End Sub

1 Respuesta

Respuesta
1

Anexo la macro actualizada. Cambia "abc" en las 2 líneas por el password que desees

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Act.Por.Dante Amor
     Application.ScreenUpdating = False
     If Target.Count > 1 Then Exit Sub
     If Not Intersect(Target, Range("E:E")) Is Nothing Then
        Sh.Unprotect "abc"
        Select Case Target.Value
            Case "Anulada":             windex = 6:  wfont = 1: wbold = False
            Case "En tramitación":      windex = 0:  wfont = 1: wbold = False
            Case "No aceptada":         windex = 6:  wfont = 1: wbold = False
            Case "Realizada":           windex = 10: wfont = 2: wbold = True
            Case "Traspasada a RRII":   windex = 11: wfont = 2: wbold = True
        End Select
        With Range("A" & Target.Row & ":F" & Target.Row)
            .Interior.ColorIndex = windex
            .Font.ColorIndex = wfont
            .Font.Bold = wbold
        End With
        Sh.Protect "abc"
    End If
    Application.ScreenUpdating = True
End Sub

sal u dos

No funciona, la hoja se queda protegida y no la desprotege.

Muchas gracias.

Saludos

¿Cambiaste el password "abc" en ambas líneas de la macro por el password que tienes?

El formato de celdas de la columna "E", en proteger, la casilla de Bloqueda debe estar desactivada antes de que protejas la hoja. Es decir, primero desbloquea la columna E, luego proteges la hoja con el password que deseas. Luego modificas la macro con el password que elegiste y por último modificas una celda de la columna E.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas