Macro para proteger varios rangos de celdas a partir del valor de una celda

Necesito un código, en donde a partir de el valor de una celda (A1) = "si o no", "me proteja/desproteja " (permitir si o no borrar datos) de varios rangos de celdas (B1:B4) y (C1:C7), pero ademas esto lo haga dentro de la misma hoja con varios rangos a partir de otra celda, ej. (H1) = "si o no", proteja/desproteja el rango (E1:E4) y (D1:D7), y (G1) = "si o no", proteja/desproteja el rango (I1:I4) y (J1:J7), sin que se entre en conflicto, la hoja inicialmente esta bloqueada, salvo las celdas permitidas, Osea de acuerdo al valor que tome un celda permita borrar o no un rango de celda, pero para viarias celdas que tomen ciertos valores y que permitan borrar o no varios rangos.

NO SE SI SE PODRÁ.

2 Respuestas

Respuesta
3

Te dejo el link donde puedes descargar un archivo configurado para hacer lo que mencionas, puedes revisar el código y modificarlo a tus necesidades futuras

Igualmente dejo el código para quien encuentre útil esta pregunta.

Private Sub Worksheet_Change(ByVal Target As Range)
''Creada por FSerrano en 131106 para Adrian626 en TodoExpertos.com
''configura la protección de las celdas de acuerdo a los valores ingresados
If Target.Address(0, 0) = "A1" Then RANGO = "B1:B4,C1:C7"
If Target.Address(0, 0) = "H1" Then RANGO = "E1:E4,D1:D7"
If Target.Address(0, 0) = "G1" Then RANGO = "I1:I4,J1:J7"
If IsEmpty(RANGO) Then Exit Sub
ActiveSheet.Unprotect
If UCase(Target.Value) = "SI" Then
 ActiveSheet.Range(RANGO).Locked = False
ElseIf UCase(Target.Value) = "NO" Then
 ActiveSheet.Range(RANGO).Locked = True
End If
ActiveSheet.Protect
End Sub

Saludos

Si has logrado una solución, no olvides finalizar y puntuar la pregunta

Respuesta

Si esta configurado la opción option explicit, es decir se debe declarar la variable RANGO, como te sale error habría que verificar y quitar esta opción.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas