Llenar celda automáticamente con fecha si se cumple determinada condición

Pido de la colaboración de ustedes para solucionar el siguiente problema:

Tengo un archivo de excel que en la columna A tengo una condicional que cuando se cumpla en cada una de las filas coloque un "SI". Ahora necesito que en la columna B se escriba la fecha exacta que tiene el PC cuando en la columna A cambie a "SI", pero que esta fecha no cambie nuevamente.

Encontré un código que puede servir pero es manual y no se como volverlo automático ya que si inserto la formula asi esta arroje como resultado "" se activa en la columna B:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
Range("B" & Target.Row) = Now
End If
End Sub

1 respuesta

Respuesta
1

Dices que tienes una condicional en la columna A, puedes poner la fórmula que tienes.

Lo que quieres es, si la columna A cambia A "SI" entonces que en la celda B te ponga la fecha.

Exactamente,la cuestión es que cuando cambie a SI en la columna A, en B coloque la fecha del sistema una única vez, esto cada vez que en la columna A sea SI, y que esta fecha no cambie cuando se realiza la apertura del archivo nuevamente, que ese SI no lo tome manual sino como resultado de la formulación presente en la columna A, la cual valida dos datos y si uno es mayor que otro coloca SI o de lo contrario NO.

Pero no pusiste la fórmula de la columna A

hola esta es formula de la columna A    =IF(C2<D2,"NO","SI")

Sigue las Instrucciones para poner la macro en worksheet
1. Abre tu libro de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
4. Del lado derecho copia la macro

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("C:D")) Is Nothing Then
    If Cells(Target.Row, "A") = "SI" Then
        If Cells(Target.Row, "B") = "" Then
            Cells(Target.Row, "B") = Now
        End If
    End If
End If
End Sub

Con la macro, cada vez que modifiques un valor de la columna C o D, revisa si el resultado en A = "SI", si se cumple, ahora revisa que en B esté la celda vacía, si está vacía entonces pone la fecha, si no está vacía, significa que ya hay una fecha y ya no actualiza la fecha.

Saludos. Dante Amor
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas