Proteger una celda con macros

Hola la pregunta es la siguiente tengo una celda que cuando le coloco un valor ella en la celda siguiente ej: A1 le coloco 10 y en la celda B2 me cambia un valor, pero cuando quiero proteger la celda B2 para que no me cambien los datos de la forma tradicional de excel me sale un error de compilación y no me muestra el resultado de la macro, si le quito la protección ya queda otra vez la macro funcional pero el la celda b2 pueden borrar y cambiar los datos.
Muchas Gracias

1 respuesta

Respuesta
1
Dejame ver que hace la macro porque tal vez esté tratando de acceder a algún lugar protegido
Hola si yo protejo la hoja pero cuando se ejecuta me sale error, le envío el código de la macro, lo que quiero es que esta macro coloca la fecha actual, pero quiero que cuando se coloque en la celda el usuario no me la pueda modificar, porque si coloca la fecha actual pero la deja borrar o colocar otra, y la idea es que la coloque al momento de ejecutarse y esta sea de control.
Gracias
Private Sub worrksheet_change(ByVal Target As Range)
aplication.MoveAfterReturn = False
If Target.Count = 4 Then
If (Target.Column = 13 And Target <> 0) Then
Target.Offset(-0, 5) = Now
End If
End If
End Sub
Yo le agregaría a la macro lo siguiente
Private Sub worrksheet_change(ByVal Target As Range)
aplication.MoveAfterReturn = False
If Target.Count = 4 Then
If (Target.Column = 13 And Target <> 0) Then
ActiveSheet.Unprotect Password:= "tuContraseña"
Target.Offset(-0, 5) = Now
ActiveSheet.Protect
Password:= "tuContraseña"
End If
End If
End Sub
Fíjate que agregué las instrucciones Unprotect y Protect; luego de esto deberías proteger también el proyecto (desde el VBA) pues si acceden al código podrían ver cual era la contraseña.
Cualquier cosa comenta
Gustavo
Gracias Gustavo, ingreso el código como usted me dice y me aparece un error en la siguiente linea que le coloco ***
Private Sub Worksheet_Change(ByVal Target As Range)
Application.MoveAfterReturn = False
If Target.Count = 1 Then
If (Target.Column = 13 And Target <> 0) Then
ActiveSheet.Unprotect Password:="fabianca"
Target.Offset(-0, 5) = Now
ActiveSheet.Protect
Password:= "fabianca" ********
End If
End If
End Sub
Porque salió cortado en la pagina; en realidad esa línea es parte de la anterior; (donde está el Protect); si querés escribila así
ActiveSheet.Protect _
Password:="fabianca"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas