VíctorManuelSantosMaldonado635 publicó en la clase Worksheet_BeforeDoubleClick: Intercalar entre Terminado y Pendiente hace 9 meses
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?
Respuestas
JuliaBravo490 respondió hace hace 8 meses:
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.
OsmaniPititi respondió hace hace 4 semanas:
Buenas Tardes
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
End With
End If
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
End With
End If
