Macro para eliminar UNA SOLA fila según valor en celda.

Bien, tengo esta hoja de calculo con una macro que me dice "valor ya coincidente" en la columna c.

Ahí ya está ejecutada la macro, yo elimino una fila para quitar un valor ya coincidente ejecuto la macro y la hoja me quedaría del siguiente modo.

Si lo notan, en la fila 2 ya no esta el valor "Valor ya coincidente"

Si vuelvo a eliminar una fila donde este el valor "Valor ya coincidente" me quedaría así.

Y la idea es eliminar las filas donde diga "Valor ya coincidente" ejecutar la macro y eliminar así sucesivamente hasta que todas las celdas de la columna C estén en blanco, el problema es que a veces tengo cientos de datos y hacerlo manualmente me lleva mucho tiempo. Lo que requiero es una macro que busque el valor en una celda "Valor ya coincidente" y elimine esa fila, pero que sea una sola, no dos, tres o varias, solo una, y al final de esa macro pondría.

Call Revisar_Duplicados

Y en la macro Revisar_Duplicados pondría al final 

Call Elimiar_Duplicados (o cual sea el nombre que se le asigne)

Para hacer un circulo infinito hasta eliminar todos los valor ya coincidentes.

1 Respuesta

Respuesta
1

Haber si entiendo lo que quieres.

Si tienes esto

1    2

2    1

1    2

Eso significa que los 3 datos están repetidos. Quieres una macro que, después de todas las revisiones, te deje solamente esto:

1 2

---

Lo más práctico es que expliques qué tienes y qué esperas como resultado final. De esa forma yo entendería cuál es tu necesidad y me ocuparía de hacer un ciclo o los ciclos necesarios para llegar a tu resultado final.

entendiste perfecto, es eso lo que quiero, una macro que haga tal cual lo que acabaste de poner con los números.

Te anexo la macro

'
Sub Macro6()
'
' Por Dante Amor
'
    Columns("C:D").ClearContents
    u = Range("A" & Rows.Count).End(xlUp).Row
    With Range("C1:C" & u)
        .FormulaR1C1 = "=""'"" & RC[-2]&RC[-1]" '"=RC[-2]&RC[-1]"
        .Value = .Value
    End With
    '
    For i = 1 To u
        If Cells(i, "D") = "" Then
            par1 = Cells(i, "A") & Cells(i, "B")
            Set r = Columns("C")
            Set b = r.Find(par1, LookAt:=xlWhole)
            If Not b Is Nothing Then
                celda = b.Address
                Do
                    Cells(b.Row, "D") = "'" & par1
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> celda
            End If
        End If
        If Cells(i, "D") <> "" Then
            par2 = Cells(i, "B") & Cells(i, "A")
            Set r = Columns("C")
            Set b = r.Find(par2, LookAt:=xlWhole)
            If Not b Is Nothing Then
                celda = b.Address
                Do
                    'detalle
                    If Cells(b.Row, "D") = "" Then
                        Cells(b.Row, "D") = Cells(i, "C")
                    End If
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> celda
            End If
        End If
    Next
    '
    ActiveSheet.Range("A1:D" & u).RemoveDuplicates Columns:=4, Header:=xlNo
    Columns("C:D").ClearContents
    MsgBox "Fin"
End Sub

.

. S aludos. Dante Amor. R ecuerda valorar la respuesta. G racias

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas