Macro para resaltar valores que que se repiten una determinada cantidad de veces

Insertamos un módulo en el VBAProject (PERSONAL.XLSB)

Si deseamos que la macro este disponible para emplearse en cualquier archivo.

Insertamos un módulo en el VBAProject del Libro en Uso

Si deseamos que la macro este disponible únicamente para emplearse en ese archivo. Para identificarlo este lleva el mismo nombre del archivo y una vez que se escriba el código, el archivo debe guardarse como Libro de Excel habilitado para macros.

Copiamos el siguiente código:

Sub ResaltarValoresRepetidos()
    Dim Rng As Range, Cld As Range, Vlr As Variant, Rptcn As Integer, Clr As Long, Vnctrd As Boolean, VR As Object
    
    Vnctrd = False
    Set VR = CreateObject("Scripting.Dictionary")
    Rptcn = InputBox("Número de veces que se debe repetir el valor a resaltar:")
    Set Rng = Application.InputBox("Rango de celdas", Type:=8)
    
    For Each Vlr In Rng.Value
        If Application.WorksheetFunction.CountIf(Rng, Vlr) = Rptcn Then
            Vnctrd = True
            If Not VR.Exists(Vlr) Then
                Clr = RGB(Int(Rnd() * 256), Int(Rnd() * 256), Int(Rnd() * 256))
                VR.Add Vlr, Clr
            End If
            Clr = VR(Vlr)
            For Each Cld In Rng.Cells
                If Cld.Value = Vlr Then
                    Cld.Interior.Color = Clr
                End If
            Next Cld
        End If
    Next Vlr
    
    If Not Vnctrd Then
        MsgBox "No se encontró ningún valor que se repita " & Rptcn & IIf(Rptcn = 1, " vez", " veces") & "."
    ElseIf VR.Count = 1 Then
        MsgBox "Se encontró " & VR.Count & " valor que se repite " & Rptcn & IIf(Rptcn = 1, " vez", " veces") & "."
    Else
        MsgBox "Se encontraron " & VR.Count & " valores que se repiten " & Rptcn & IIf(Rptcn = 1, " vez", " veces") & "."
    End If
End Sub

Pegamos y Guardamos el código:

Presionamos Alt + F8 para abrir el cuadro de diálogo de macros

Buscamos la macro donde la creamos y la ejecutamos



Comentarios