Post Summit. Clic aquí.

días

horas

mins

segs

Cursos Clases en vivo Foro Ranking estudiantes Blog
Iniciar sesiónInscribirme

Es necesario estar inscrito para dejar tu duda, comentario y/o respuesta

Todo

Sin respuesta

Solo preguntas

Excel

Power BI

Power Query

Power Pivot

DAX

Macros VBA

SQL

Comentarios en clases

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
CursosForoClases en vivoValidar certificadoTérminos y condicionesIniciar sesiónInscribirme
© 2026 Deztaca. Todos los derechos reservados