Una macro para detectar triplicados

Necesito una macro que me resalte en la columna B aquellos datos que se repitan 3 ó mas veces en el rango A1:A60 y que lo haga indicando el valor correspondiente de la columna A en la B cuando se produzca el hecho de que el valor se triplique.

Pongo un ejemplo:

Columna A columna B

23

3

71

45

23

90

3

23 23

54

3 3

55

1 respuesta

Respuesta
2

Te anexo la macro, si hay 3 o más duplicados en la columna B te va a poner el valor. Si en la columna tienes 4 repetidos, también te va a poner el valor, es decir, en el 3er valor y en el 4to valor te va a poner el valor. Eso es lo que entendí en esta parte:

"me resalte en la columna B aquellos datos que se repitan 3 ó mas veces"

Si solamente quieres que se resalte cundo se repitió 3 veces. Cambia en la macro esto:

If cont >= 3 Then

Por esto:

If cont = 3 Then

Dim valores As New Collection
Dim filas As New Collection
Sub ordenar()
'Por Dante Amor
    Columns("B").ClearContents
    u = 16
    For i = 1 To u
        Call agregar(Cells(i, "A"), i)
    Next
    '
    ant = valores(1)
    For i = 1 To u
        If ant = valores(i) Then
            cont = cont + 1
            If cont >= 3 Then
                Cells(filas(i), "B") = valores(i)
            End If
        Else
            cont = 1
        End If
        ant = valores(i)
    Next
    Set valores = Nothing
    Set filas = Nothing
End Sub
Sub agregar(valor, fila)
'por.Dante Amor
    For i = 1 To valores.Count
        If valores(i) > valor Then
            valores.Add valor, Before:=i
            filas.Add fila, Before:=i
            Exit Sub
        End If
    Next
    Valores. Add valor 'Es mayor o igual lo agrega al final
    Filas. Add fila
End Sub

Saludos.Dante Amor

Perdona, cambia en la macro

u = 16

Por 60 ó por la última fila con datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas