VBA: problema con macro y la función now

Tengo programada una macro, en una celda tengo una fecha y quiero que al llegar esa fecha me cambie el contenido de una celda y me bloquee la fila. El código que he escrito es este y no sé ti tiene algún fallo

If Target.Column = 18 Then
    If Cells(Target.Row, 28).Value >= Date Then
        Cells(Target.Row, 19).Value = "INCORPORADO"
        Else
        ActiveSheet.Unprotect
        Range(Cells(Target.Row, 17), Cells(Target.Row, 52)).Locked = True
        Cells(1, 17).Select
        ActiveSheet.Protect
        Application.EnableEvents = True
        End If
End If

1 Respuesta

Respuesta
1

Podrías describir lo que necesitas con un ejemplo.

Es decir, capturas algo en la columna 18 (R), pero verificas la columna 28 (AB).

¿Qué tienes en AB y qué quieres realizar?

He visto un fallo de sintaxis, pero aún así no me ejecuta lo que quiero

Estoy haciendo un proceso de incorporación de personal y he puesto una fecha de incorporación (la columna 28), si finalmente se incorpora ese día, la celda de la columna 19 debe poner incorporado y bloquearse:

If Cells(Target.Row, 28).Value = Date Then
    Application.EnableEvents = False
    Cells(Target.Row, 19).Value = "INCORPORADO"
    Else
        ActiveSheet.Unprotect
        Range(Cells(Target.Row, 17), Cells(Target.Row, 52)).Locked = True
        Cells(1, 17).Select
        ActiveSheet.Protect
        Application.EnableEvents = True
    End If

No entiendo lo que necesitas.

La macro que pusiste tiene algunos detalles que no entiendo.

Mejor explícame qué vas a hacer.

Dime qué datos tienes en la hoja y qué quieres comparar contra qué.

Ya no pongas tu macro, no te preocupes, yo te ayudo a crear la macro.

En mi excel en la columna 19 tengo un desplegable con 4 opciones, son las cuatro fases de un proceso y en las columnas contiguas, se van poniendo las fechas en las que cambio de proceso. El ultimo proceso depende de la fecha definida por mi en la columna 28. Mientras no llegue a esa fecha no puede cambiar el valor de la celda y llegada esa fecha ademas se debe bloquear la fila ya que el proceso haterminado y no puede ser modificado

Pero no pusiste esto:

"qué datos tienes en la hoja y qué quieres comparar contra qué."

Para entender lo que necesitas podrías poner ejemplos.

Por ejemplo, la columna 19 es la "S", entonces selecciono la celda S4 para cambiar a una de las 4 fases.

Al seleccionar la celda S4, ¿quieres verificar algo? ¿Qué quieres verificar? ¿Si se cumple qué debe hace la macro?

Después de seleccionar la celda S4, ahora selecciono la fase1, ¿quieres verificar algo? ¿Qué quieres verificar? ¿Si se cumple qué debe hacer la macro?

Por último selecciono la fase4, (¿cómo saber que es la última fase del proceso?), ¿Quieres verificar algo? ¿Qué quieres verificar? ¿Si se cumple qué debe hacer la macro?


También pusiste esto:

"Mientras no llegue a esa fecha no puede cambiar el valor de la celda y llegada esa fecha ademas se debe bloquear la fila ya que el proceso ha terminado y no puede ser modificado"

¿Eso significa que hay que revisar los registros cada que abras el libro?

"Mientras no llegue a esa fecha no puede cambiar el valor de la celda"

De cuál celda, ¿en mi ejemplo es la celda S4?, si la fecha es 24 de abril y hoy es 20 de abril, no puede cambiar la celda S4. Para que no pueda cambiar la S4, entonces la celda S4 debe permancer bloqueada.

Pero luego pones esto:

"y llegada esa fecha ademas se debe bloquear la fila ya que el proceso ha terminado y no puede ser modificado"

Antes de la fecha la celda debe estar bloqueada y llegada la fecha hay que bloquear la fila, pero si ya estaba bloqueada la celda.


Disculpa pero sigo sin entender el funcionamiento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas