Macro para bloquear celdas después de escribir lista desplegable

Tengo una lista desplegable en la cual se selecciona el nombre de un vendedor, mi pregunta es si existe una macro que una vez seleccionado el nombre del vendedor, ¿ya no permita modificarlo a menos que se ingrese una contraseña?

Con esta macro si lo hace

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B5:B9")) Is Nothing Then
Else
If Target.Value <> "" Then
Target.Select
ActiveSheet.Unprotect "123"
Selection.Locked = True
End If
ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End If

End Sub

Pero bloquea todo el rango es decir NO me permite pasar a la otra celda y activar la lista desplegable.

1 respuesta

Respuesta
1

Lo primero a tener en cuenta es que Excel trae de modo predeterminado TODAS las celdas de la hoja bloqueadas, que lo notarás recién al proteger la hoja.

Entonces debes desbloquear todo el rango que necesites utilizar (o al revés, desbloquear toda la hoja y solo bloquear aquellas celdas no permitidas como títulos y fórmulas).

Y luego tu macro funcionará correctamente. Te la mejoré un poco ;)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B5:B9")) Is Nothing Then
    If Target.Value <> "" Then
        'desprotege, bloquea y vuelve a proteger
        ActiveSheet.Unprotect "123"
        Target.Locked = True
        ActiveSheet.Protect "123", DrawingObjects:=True, Contents:=True, Scenarios:=True
        ActiveSheet.EnableSelection = xlUnlockedCells
    End If
End If
End Sub

¡Gracias! Ya se pudo

Al final de este mensaje encontrarás un cuadro para seleccionar una valoración (buena o Excelente) y así se dará por cerrado este tema.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas