Ejecuta la siguiente macro.
Nota: La macro ocupa las columnas Y:Z para hacer operaciones.
Sub Macro7()
' Por Dante Amor
'
col = "Y"
c1 = Columns(col).Column
c2 = Columns(col).Column + 1
u = Range("D" & Rows.Count).End(xlUp).Row
With Range(col & "27:" & col & u)
.FormulaR1C1 = "=RC4&RC5"
End With
Range("D27:D" & u).Interior.ColorIndex = xlNone
Range(col & "27:" & col & u).Copy
Cells(27, c2).PasteSpecial xlValues
ActiveSheet.Range(Cells(27, c2), Cells(u, c2)).RemoveDuplicates Columns:=1, Header:=xlYes
'
u2 = Cells(Rows.Count, c2).End(xlUp).Row
For i = 28 To u2
Set r = Columns(c1)
Set b = r.Find(Cells(i, c2), LookAt:=xlWhole, LookIn:=xlValues)
una = True
If Not b Is Nothing Then
celda = b.Address
fila = b.Row
tip1 = Cells(b.Row, "F")
fec1 = Cells(b.Row, "C")
If LCase(tip1) = LCase("Preventivo") Then
Do
If una Then
una = False
Else
fec2 = Cells(b.Row, "C")
tip2 = Cells(b.Row, "F")
If LCase(tip2) = LCase("Correctivo") And fec1 < fec2 Then
Range("D" & fila).Interior.ColorIndex = 6
Range("D" & b.Row).Interior.ColorIndex = 6
End If
End If
Set b = r.FindNext(b)
Loop While Not b Is Nothing And b.Address <> celda
ElseIf LCase(tip1) = LCase("Correctivo") Then
Do
If una Then
una = False
Else
fec2 = Cells(b.Row, "C")
tip2 = Cells(b.Row, "F")
If LCase(tip2) = LCase("Correctivo") Then
Range("D" & fila).Interior.ColorIndex = 3
Range("D" & b.Row).Interior.ColorIndex = 3
End If
End If
Set b = r.FindNext(b)
Loop While Not b Is Nothing And b.Address <> celda
End If
End If
Next
MsgBox "Fin"
End Sub
Existen algunos casos que no sé si existan, y en caso de existir, cómo se resolvería, por ejemplo:
- Qué pasa si una misma unidad-cliente tiene correctivo, ¿después preventivo y después correctivo? La macro solamente pintaría los 2 correctivos.
- O qué pasa si tienes preventivo, preventivo y correctivo, la macro solamente pinta el 1 y el 3.
En específico, la macro solamente pinta los 2 casos que pusiste.
Prueba y me comentas.
Sigue las Instrucciones para un botón y ejecutar la macro
- Abre tu libro de Excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Ahora para crear un botón, puedes hacer lo siguiente:
- Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
- Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
- Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
- Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Macro7
- Aceptar.
- Para ejecutarla dale click a la imagen.