En el ejercicio, si ya dice completo y se le da doble clic, regresa a pendiente y creo que ese no es el objetivo. Si ya está completo y se le da doble clic, debeía no hacer nada, ¿Correcto?
En realidad, el comportamiento de la macro depende del criterio del usuario. Tal como está escrita, permite cambiar entre "Pendiente" y "Completo" con cada doble clic, lo cual puede ser útil si el usuario necesita corregir un estado por error o actualizarlo fácilmente.
Pero si se quiere evitar que una vez marcado como "Completo" se modifique, también se puede ajustar la lógica para que quede bloqueado.
En resumen: ambas opciones son válidas, solo hay que definir qué comportamiento se espera. ¡Gracias por observarlo! Esa mirada crítica enriquece mucho el aprendizaje.
Este codigo se ajusta a lo que usted refiere. Tambien se podria agregar un mensaje para preguntar al usuario si quiere aplicar el cambio de pendiente a completo y bloquear la celda, o colocar completo y no bloquearla
Dim Rango As Range
Set Rango = Me.Range("D5:D14")
If Not Intersect(Target, Rango) Is Nothing Then Cancel = True
With Target
If .Value = "Pendiente" Then .Value = "Completo" .Interior.Color = RGB(0, 176, 80) .Font.Color = RGB(255, 255, 255) .Locked = True ElseIf .Value = "" Then .Value = "Pendiente" .Interior.Color = RGB(255, 192, 0) .Font.Color = RGB(0, 0, 0) Else .Locked = True End If
Inicia sesión para dejar tu duda, comentario y/o respuesta