Olá, as seguintes macros VBA, que retirei do Clube do Hardware com autorização do colega que postou, descobrem quais e quantas células estão repetidas em uma coluna, no exemplo, coluna F, em uma planilha "Cadastros" no excel que simboliza tabelas Nome/Endereço/etc, comuns no uso do programa.
Primeiramente, organiza as células de A a Z a partir da coluna F; em seguida, verifica se um endereço em uma célula é igual ao da célula de cima e pinta tal célula. Em seguida, retoma a ordem A-Z a partir da coluna A.
Em uma segunda macro, o excel conta quantos registros estão na tabela e atribui à variável i; depois, subtrai as células coloridas e então sabemos quantos são os endereços.
Se você encontrou algum erro no código ou conhece um modo alternativo, quem sabe, mais simples, comente abaixo.
Sub end_repetidos()
Range("F2").Select
'organiza a coluna de A a Z
ActiveWorkbook.Worksheets("Cadastros").Sort.SortFi elds.Clear
ActiveWorkbook.Worksheets("Cadastros").Sort.SortFi elds.Add Key:=Range("F2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cadastros").Sort
.SetRange Range("A2:M1500")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'destaca os endereços repetidos
ActiveCell.EntireColumn.Interior.Pattern = xlNone
i = -1
While ActiveCell.FormulaR1C1 <> ""
If ActiveCell.FormulaR1C1 = ActiveCell.Offset(i, 0).FormulaR1C1 Then
Selection.Interior.Color = RGB(219, 229, 241)
'With Selection.Interior
'.Pattern = xlSolid
'.PatternColorIndex = xlAutomatic
'.ThemeColor = xlThemeColorAccent1
'.TintAndShade = 0.799981688894314
'.PatternTintAndShade = 0
'End With
End If
ActiveCell.Offset(1, 0).Select
Wend
'Volta à organização normal
Range("A2").Select
ActiveWorkbook.Worksheets("Cadastros").Sort.SortFi elds.Clear
ActiveWorkbook.Worksheets("Cadastros").Sort.SortFi elds.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Cadastros").Sort
.SetRange Range("A2:M1500")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Sub numreg()
Dim i As Integer
Dim j As Integer
Dim count As Integer
Range("F2").Select
i = 1
While ActiveCell.Offset(i, 0).FormulaR1C1 <> ""
i = i + 1
Wend
MsgBox i
count = i
For j = 0 To i
If ActiveCell.Offset(j, 0).Interior.Color = RGB(219, 229, 241) Then
count = count - 1
End If
Next j
MsgBox count
End Sub
Salve a Solidariedade na Web!
Assinar:
Postar comentários (Atom)
0 comentários:
Postar um comentário