Notifications
Clear all

Eliminar duplicidade na coluna A

6 Posts
2 Usuários
0 Reactions
1,168 Visualizações
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Prezados colegas Bom dia.

Tenho esta rotina abaixo:

 Sub colar()
'
' colar Macro
'

'
    Sheets("dados").Select
    Range("M17:Q42").Select
    Selection.Copy
    Sheets("relatorio").Select
    Range("a2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=18
    Sheets("dados").Select
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    Sheets("relatorio").Select
    ActiveWindow.SmallScroll Down:=-18
    Sheets("relatorio").Select
    ActiveWindow.SmallScroll Down:=-30
    Range("E17").Select
    ActiveWindow.SmallScroll Down:=15
    Range("B1").Select
    MsgBox "Apos Gerar O Relatorio Utilzar Apenas Bordas Externas No Campo Das Informacoes E Depois De Concluido Imprimir O Documento."
End Sub   

Gostaria de saber se teria uma forma de incluir um código no final da minha rotina para que seja eliminado todos dados duplicados (repetidos) na coluna A.

Desde já agradeço a todos colegas deste fórum e espero que possam me ajudar.

Abraços.

 
Postado : 05/12/2013 7:15 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Você pode colocar esse código em módulo separado e chama-lo

 
Sub TenteAleVBA()
     
    Dim x               As Long
    Dim LastRow         As Long
     
    LastRow = Range("A65536").End(xlUp).Row
    For x = LastRow To 1 Step -1
        If Application.WorksheetFunction.CountIf(Range("A1:A" & x), Range("A" & x).Text) > 1 Then
            Range("A" & x).EntireRow.Delete
        End If
    Next x
     
End Sub

Ficaria assim

Sub colar()
'
' colar Macro
'

     Application.ScreenUpdating = 0
    Sheets("dados").Select
    Range("M17:Q42").Select
    Selection.Copy
    Sheets("relatorio").Select
    Range("a2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.SmallScroll Down:=18
    Sheets("dados").Select
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 10
    Sheets("relatorio").Select
    ActiveWindow.SmallScroll Down:=-18
    Sheets("relatorio").Select
    ActiveWindow.SmallScroll Down:=-30
    Range("E17").Select
    ActiveWindow.SmallScroll Down:=15
    Range("B1").Select
    MsgBox "Apos Gerar O Relatorio Utilzar Apenas Bordas Externas No Campo Das Informacoes E Depois De Concluido Imprimir O Documento."
call  TenteAleVBA '<- Veja
    Application.ScreenUpdating = 1
End Sub 
 
Postado : 05/12/2013 7:19 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Bom dia alexandrevba

Valeu pela ajuda foi muito útil.
Era isso mesmo que precisava.
Mais uma vez agradeço sua generosidade.

Abraços

 
Postado : 05/12/2013 7:28 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Precisando é só falar ;)

Obs: Também há outras formas de se fazer isso....

Att

 
Postado : 05/12/2013 7:33 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Estimado colega alexandrevba.

Provavelmente irei precisar de sua ajuda sim, alias todos colegas deste fórum sempre são muito generosos e tudo gente boa!
Existe outra forma de fazer isso??
Mas teria alguma diferença no critério para a filtragem ou resultado é o mesmo do que você ensinou na primeira?

Abraços.

 
Postado : 05/12/2013 8:31 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Mas teria alguma diferença no critério para a filtragem ou resultado é o mesmo do que você ensinou na primeira?

O resultado é o mesmo, seria apenas o "forma" do código, que ao invés de usar dois módulos ou dois código usaria um só.

Mas o código em si, tem a melhor performance.

Att

 
Postado : 06/12/2013 7:39 am