Necesito dejar una macro para que funcione automáticamente

Tengo una macro que me destaca en color rojo aquellas licencias médicas cuyo reposo sobrepase el mes, pero necesito que ésta se ejecute de forma automática sin necesidad de tener que estarla ejecutando.

La macro es la siguiente:

Sub CompararFechas()
For i = 2 To Range("K" & Rows.Count).End(xlUp).Row
     If Cells(i, "I") = "Licencia" Then
          If Cells(i, "K") > Cells(i, "L") Then
               j = Range("K" & Rows.Count).End(xlUp).Row + 1
               Range("K" & i & ":L" & i).Interior.ColorIndex = 3
          End If
    End If
Next
End Sub

1 respuesta

Respuesta
1

Aún no has valorado la respuesta que te envié.

Sí, perdón ahí valore tus repuestas anteriores. Muchas gracias! 

Para que una macro se ejecute en automático, tiene que suceder un evento en el libro, un evento puede ser cuando abres el libro, cuando cambias de una hoja a otra, cuando modificas una celda.

Si quieres que la macro se ejecute en automático, me tienes que decir qué evento es el que ocurre. Por ejemplo, si modificas o agregas un dato en una celda de la columna "J", puede ser así:

Private Sub Worksheet_Change(ByVal Target As Range)
'
If Not Intersect(Target, Columns("J")) Is Nothing Then
    For i = 2 To Range("K" & Rows.Count).End(xlUp).Row
         If Cells(i, "I") = "Licencia" Then
              If Cells(i, "K") > Cells(i, "L") Then
                   j = Range("K" & Rows.Count).End(xlUp).Row + 1
                   Range("K" & i & ":L" & i).Interior.ColorIndex = 3
              End If
        End If
    Next
End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de 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

Estimado, justamente lo ideal es que cuando copie y pegue los datos de forma automática se destaque en color rojo si es que la fecha_fin(K) sea mayor a FinMes(L).

Probé la macro pero no me funciono.

quedo a  la espera de sus comentarios.

gracias

¿Copias la información y en cuáles columnas la pegas?

Como te expliqué hay que identificar un evento para que la macro se ejecute en automático.

Copio filas completas con información desde la columna A hasta la K (Fecha_fin)

Cada vez que modifiques la fecha de la columna K, no importa si copiaste 1 ó 20 filas, si estás modificando la fecha de la columna K, la macro se ejecutará en automático.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("K")) Is Nothing Then
        For Each f In Target.Rows
            If Cells(f.Row, "I") = "Licencia" And Cells(f.Row, "K") > Cells(f.Row, "L") Then
                Range("K" & f.Row & ":L" & f.Row).Interior.ColorIndex = 3
            End If
        Next
    End If
End Sub

IMPORTANTE! : para que la macro se active, deberás poner la macro en los eventos de la hoja, sigue las Instrucciones para poner la macro en los eventos de 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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas