Cómo hacer una macro que analice cada celda de la fila de una columna

Estoy trabajando una tabla con 4 en la columna y tengo 'n' registros o filas(eso varía). En mi primera columna tengo un nombre, segunda columna tengo la fecha inicial, en la tercera tengo una fecha final y en la tercera tengo un concatenación de la primera columna y la segunda columna.

La cuarta columna yo concateno para que me sirva de referencia ya que son datos en común, en ella ejecuto una macro para que me pinta de diferentes colores los valores repetidos en toda mi columna, y lo hace!, luego selecciono los valores repetidos y el análisis hace lo sgte: me resta la fecha final e inicial y se compara con las otras fechas del valor repetido, la de menor valor en horas, toda su fila se eliminará.

Eso es manual, es decir una vez que me ha coloreado, tengo que seleccionar los valores repetidos, ejecuto la macro, hace su análisis y elimina la fila, pero quiero que me apoyen haciendo eso con un ciclo FOR o WHILE, he estado intentando todo el día y no he logrado.

1 Respuesta

Respuesta
1

Prueba con la siguiente macro. Conserva la concatenación que tienes en la columna D.

Sub Eliminar_Duplicado()
'Por Dante Amor
    For i = Range("C" & Rows.Count).End(xlUp).Row To 2 Step -1
        difer1 = Cells(i, "C").Value - Cells(i, "B").Value
        valor = Cells(i, "D").Value
        Set b = Range("D1:D" & i - 1).Find(valor, lookat:=xlWhole, LookIn:=xlValues)
        If Not b Is Nothing Then
            difer2 = Cells(b.Row, "C").Value - Cells(b.Row, "B").Value
            If difer2 < difer1 Then
                Rows(b.Row).Delete
            Else
                Rows(i).Delete
            End If
        End If
    Next
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

¡Gracias! 

Funcionó a la perfección, te puse unos datos relevantes, pero luego lo tuve que acomodar a mi excel. Pero funcionó muy bien, y es muy óptima.

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas