Como bloquear ciertas celdas en excel
Tengo un archivo de excel y quiero que cuando el usuario elija anulación se bloquee ciertas celdas pertenientes a refacturación y cuando elija refacturación se bloquien las celdas de anulación.
Ejemplo.:
En A2 tengo una lista desplegable para que elijas "ANULACION" O "REFACTURACION"
Cuando eliga "Anulacion" esten activadas las celdas C2, H2, N2, O2R2, S2, U2, W2 y bloqueadas las celdas D2, E2, F2, K2, P2, T2, V2.
Y cuando Elija "refacturación" esten activas las celdas D2, E2, F2, K2, P2, T2, V2 y bloqueadas las celdas
C2,H2,N2,O2R2,S2,U2,W2.
Intente el siguiente código, pero no obtuve éxito. Lo encontré en una página y modifique a lo que según necesitaba
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Isect As Range
Set Isect = Application.Intersect(Target, Range("A3:A2000"))
If Not Isect Is Nothing Then
If Isect = "ANULACION" Then
ActiveSheet.Unprotect "123"
Isect.Offset(0, 2).Locked = False
Isect.Offset(0, 7).Locked = False
Isect.Offset(0, 13).Locked = False
Isect.Offset(0, 14).Locked = False
Isect.Offset(0, 17).Locked = False
Isect.Offset(0, 18).Locked = False
Isect.Offset(0, 20).Locked = False
Isect.Offset(0, 22).Locked = False
Isect.Offset(0, 3).Locked = True
Isect.Offset(0, 4).Locked = True
Isect.Offset(0, 5).Locked = True
Isect.Offset(0, 10).Locked = True
Isect.Offset(0, 15).Locked = True
Isect.Offset(0, 19).Locked = True
Isect.Offset(0, 21).Locked = True
Call ProtejeHoja
ElseIf Isect = "REFACTURACION" Then
ActiveSheet.Unprotect "123"
Isect.Offset(0, 2).Locked = True elegir
Isect.Offset(0, 7).Locked = True
Isect.Offset(0, 13).Locked = True
Isect.Offset(0, 14).Locked = True
Isect.Offset(0, 17).Locked = True
Isect.Offset(0, 18).Locked = True
Isect.Offset(0, 20).Locked = True
Isect.Offset(0, 22).Locked = True
Isect.Offset(0, 3).Locked = False
Isect.Offset(0, 4).Locked = False
Isect.Offset(0, 5).Locked = False
Isect.Offset(0, 10).Locked = False
Isect.Offset(0, 15).Locked = False
Isect.Offset(0, 19).Locked = False
Isect.Offset(0, 21).Locked = False
Call ProtejeHoja
Else
MsgBox "Solo puede indicar ANULACION O REFACTURACION"
End If
End If
End Sub
y este es el codigo de la funcion ProtegeHoja
Sub ProtejeHoja()
ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, AllowFormattingCells:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub