Notifications
Clear all

Deletar duplicados

6 Posts
2 Usuários
0 Reactions
723 Visualizações
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa noite

Pesquisando na biblioteca por deletar duplicados ou eliminar duplicados, não encontrei nada referente ao tema. Então se alguém souber de coisa parecida, informe.

O código em questão deve atuar no intervalo A1:W250, deletando qualquer valor numérico com mais de uma aparição dentro do referido intervalo.

Grato :D

 
Postado : 19/04/2013 8:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Use o Gravador de Macro!!!!!!

Att

 
Postado : 19/04/2013 8:03 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa noite
Como o código gerado pelo gravador de macros vai identificar valores em duplicidade, haja vista que alguns valores aparecem duplicados n vezes?

 
Postado : 19/04/2013 8:45 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não é muito minha praia não. Demora mas funciona.

Sub DelDuplMANDRIX()
    Dim Cell As Range, objeto As Range, N&
    Application.ScreenUpdating = False
    N = 0
    For Each Cell In Range("a1:w250")
        If Cell <> Empty Then
            For Each objeto In Range("a1:w250")
                If objeto <> Empty And _
                objeto.Value = Cell.Value And _
                objeto.Address <> Cell.Address Then
                    objeto.ClearContents
                    N = N + 1
                End If
            Next objeto
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox " " & N & " registros duplicados deletados"
End Sub

Abs,

 
Postado : 20/04/2013 4:02 am
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa Mandrix, o importante é que funciona.

Grato

 
Postado : 20/04/2013 8:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Esse código postado pelo Mandrix é de autoria de:johnske, vai limpar as células
http://www.vbaexpress.com/kb/getarticle.php?kb_id=520
Em outra ocasião, caso também precise extrair os dados, em uma coluna....
Exemplo até baseado em A1:D100

Sub ExtrairValoresUnicos()
Dim Rng         As Range
Dim Dic         As Object
Dim Col         As Integer
Dim Rw          As Integer
Dim Dn          As Range
Dim R           As Range
Dim oMax     As Integer

Set Dic = CreateObject("scripting.dictionary")
Set Rng = Range("A1:D100")
ReDim Ray(1 To Rng.Rows.Count, 1 To Rng.Columns.Count)
For Each Dn In Rng.Columns
    Rw = 0: Col = Col + 1
    For Each R In Dn.Rows
        If Not Dic.exists(R.Value) And Not R.Value = vbNullString Then
            Dic.Add R.Value, Nothing
                Rw = Rw + 1
                Ray(Rw, Col) = R.Value
                oMax = Application.Max(oMax, Rw)
        End If
    Next R
Next Dn
Range("E1").Resize(oMax, 4).Value = Ray
End Sub

-----#-----#-----#-----#-----#-----#-----#-----#-----#-----

http://msdn.microsoft.com/en-us/library ... =office.14).aspx
http://erlandsendata.no/?p=3715
http://excelexperts.com/remove-duplicat ... excel-2007

 
Postado : 20/04/2013 1:34 pm