Proteccion y desproteccion por visual basic en excel
Este codigo me permite proteger y desproteger para escribir en una celda cuando se cumple una condicion.
El problema esta en que me deja desproteger desde Herramientas de Excel y no me pide contraseña.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("B1:B1111"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
Else
With .Offset(0, -1)
If .Value = "" Then
ActiveSheet.Unprotect
.NumberFormat = "dd-mm-yyyy h:mm:SS;@"
.Value = Now
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
CONTRASEÑA = 123
Else
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
CONTRASEÑA = 123
End If
End With
End If
Application.EnableEvents = True
End If
End With
End Sub
El problema esta en que me deja desproteger desde Herramientas de Excel y no me pide contraseña.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("B1:B1111"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
Else
With .Offset(0, -1)
If .Value = "" Then
ActiveSheet.Unprotect
.NumberFormat = "dd-mm-yyyy h:mm:SS;@"
.Value = Now
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
CONTRASEÑA = 123
Else
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
CONTRASEÑA = 123
End If
End With
End If
Application.EnableEvents = True
End If
End With
End Sub
1 respuesta
Respuesta de Roberto Alvarado
1
