Se puede instalar un contador para estas dos macros

Se puede instalar un contador para estas dos macros:

Sub Repetid()

    col = "TK"

    '

    Application.ScreenUpdating = False

    c = Columns(col).Column

    Range(Cells(1, c), Cells(1, c + 2)).EntireColumn.ClearContents

    For Each n In Range("A1:SZ217").SpecialCells(xlCellTypeConstants, 23)

        Set b = Columns(c).Find(n.Value, lookat:=xlWhole)

        If Not b Is Nothing Then

            Cells(b.Row, c + 1) = Cells(b.Row, c + 1) + 1

            Cells(b.Row, c + 2) = Cells(b.Row, c + 2) & ", " & n.Address(False, False)

        Else

            u = Range(col & Rows.Count).End(xlUp).Row + 1

            Cells(u, c) = n.Value

            Cells(u, c + 1) = 1

            Cells(u, c + 2) = n.Address(False, False)

        End If

    Next

    For i = u To 1 Step -1

        If Cells(i, c + 1) = 1 Then

            Range(Cells(i, c), Cells(i, c + 2)).Delete Shift:=xlUp

        End If

    Next

    '

    With ActiveSheet.Sort

        .SortFields.Clear

        .SortFields.Add Key:=Range(Cells(1, c), Cells(u, c)), _

            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

        .SetRange Range(Cells(1, c), Cells(u, c + 2))

        .Header = xlGuess

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

    Application.ScreenUpdating = True

    MsgBox "Fin"

End Sub

y esta

Sub Repetidos()

'Por.Dante Amor

    col = "TG"

    '

    Application.ScreenUpdating = False

    c = Columns(col).Column

    Range(Cells(1, c), Cells(1, c + 2)).EntireColumn.ClearContents

    For Each n In Range("A1:SZ217").SpecialCells(xlCellTypeConstants, 23)

        Set b = Columns(c).Find(n.Value, lookat:=xlWhole)

        If Not b Is Nothing Then

            Cells(b.Row, c + 1) = Cells(b.Row, c + 1) + 1

            Cells(b.Row, c + 2) = Cells(b.Row, c + 2) & ", " & n.Address(False, False)

        Else

            u = Range(col & Rows.Count).End(xlUp).Row + 1

            Cells(u, c) = n.Value

            Cells(u, c + 1) = 1

            Cells(u, c + 2) = n.Address(False, False)

        End If

    Next

    For i = u To 1 Step -1

        If Cells(i, c + 1) = 1 Then

            Range(Cells(i, c), Cells(i, c + 2)).Delete Shift:=xlUp

        End If

    Next

    '

    With ActiveSheet.Sort

        .SortFields.Clear

        .SortFields.Add Key:=Range(Cells(1, c + 1), Cells(u, c + 1)), _

            SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

        .SetRange Range(Cells(1, c), Cells(u, c + 2))

        .Header = xlGuess

        .MatchCase = False

        .Orientation = xlTopToBottom

        .SortMethod = xlPinYin

        .Apply

    End With

    Application.ScreenUpdating = True

    MsgBox "Fin"

End Sub

1 respuesta

Respuesta
1

Tienes pendiente valorar esta respuesta:

Ubicacion de hoja excel de acuerdo a criterios

H o l a:

La primera macro:

Sub Repetid()
    col = "TK"
    '
    Application.ScreenUpdating = False
    Application.StatusBar = False
    c = Columns(col).Column
    Range(Cells(1, c), Cells(1, c + 2)).EntireColumn.ClearContents
    cuenta = Range("A1:SZ217").SpecialCells(xlCellTypeConstants, 23).Count
    m = 1
    For Each n In Range("A1:SZ217").SpecialCells(xlCellTypeConstants, 23)
        Application.StatusBar = "Paso 1, procesando celda: " & m & " de: " & cuenta
        Set b = Columns(c).Find(n.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Cells(b.Row, c + 1) = Cells(b.Row, c + 1) + 1
            Cells(b.Row, c + 2) = Cells(b.Row, c + 2) & ", " & n.Address(False, False)
        Else
            u = Range(col & Rows.Count).End(xlUp).Row + 1
            Cells(u, c) = n.Value
            Cells(u, c + 1) = 1
            Cells(u, c + 2) = n.Address(False, False)
        End If
        m = m + 1
    Next
    m = 1
    For i = u To 1 Step -1
        Application.StatusBar = "Paso 2, procesando celda: " & m & " de: " & u
        If Cells(i, c + 1) = 1 Then
            Range(Cells(i, c), Cells(i, c + 2)).Delete Shift:=xlUp
        End If
        m = m + 1
    Next
    '
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range(Cells(1, c), Cells(u, c)), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .SetRange Range(Cells(1, c), Cells(u, c + 2))
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Application.ScreenUpdating = True
    Application.StatusBar = False
    MsgBox "Fin"
End Sub

La segunda macro:

Sub Repetidos()
'Por.Dante Amor
    col = "TG"
    '
    Application.StatusBar = False
    Application.ScreenUpdating = False
    c = Columns(col).Column
    Range(Cells(1, c), Cells(1, c + 2)).EntireColumn.ClearContents
    cuenta = Range("A1:SZ217").SpecialCells(xlCellTypeConstants, 23).Count
    m = 1
    For Each n In Range("A1:SZ217").SpecialCells(xlCellTypeConstants, 23)
        Application.StatusBar = "Paso 1, procesando celda: " & m & " de: " & cuenta
        Set b = Columns(c).Find(n.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Cells(b.Row, c + 1) = Cells(b.Row, c + 1) + 1
            Cells(b.Row, c + 2) = Cells(b.Row, c + 2) & ", " & n.Address(False, False)
        Else
            u = Range(col & Rows.Count).End(xlUp).Row + 1
            Cells(u, c) = n.Value
            Cells(u, c + 1) = 1
            Cells(u, c + 2) = n.Address(False, False)
        End If
        m = m + 1
    Next
    m = 1
    For i = u To 1 Step -1
        Application.StatusBar = "Paso 2, procesando celda: " & m & " de: " & u
        If Cells(i, c + 1) = 1 Then
            Range(Cells(i, c), Cells(i, c + 2)).Delete Shift:=xlUp
        End If
        m = m + 1
    Next
    '
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range(Cells(1, c + 1), Cells(u, c + 1)), _
            SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        .SetRange Range(Cells(1, c), Cells(u, c + 2))
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Application.StatusBar = False
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas