EXCLUIR LINHAS COM DADOS DUPLICADOS
Bom dia
Tenho a seguinte duvida espero que alguém posso me ajudar
Estou importando dados de uma determinada planilha porém gostaria de remover algumas linha com valores duplicados baseado na coluna A da nova planilha que estou montando.
Abaixo trecho do codigo.
Workbooks.Open Filename:= _
ThisWorkbook.Path & [Ô]ec2.XLS[Ô]
Windows([Ô]rec2.XLS[Ô]).Activate
[ô]TRATAMENTO DE DATAS
Columns([Ô]AI:AI[Ô]).TextToColumns _
Destination:=Range([Ô]AI1[Ô]), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
NL = Application.WorksheetFunction.CountA(Range([Ô]d:d[Ô])) + 8
Range([Ô]D9:AL[Ô] & NL).Select
Selection.Copy
Windows([Ô]projeto_recuperacao.xlsb[Ô]).Activate
Sheets([Ô]plan3[Ô]).Activate
Range([Ô]A4[Ô]).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets([Ô]plan1[Ô]).Activate
Application.CutCopyMode = False
[ô]Esse comando limpa a área de transferência
Windows([Ô]rec2.XLS[Ô]).Close False
Tenho a seguinte duvida espero que alguém posso me ajudar
Estou importando dados de uma determinada planilha porém gostaria de remover algumas linha com valores duplicados baseado na coluna A da nova planilha que estou montando.
Abaixo trecho do codigo.
Workbooks.Open Filename:= _
ThisWorkbook.Path & [Ô]ec2.XLS[Ô]
Windows([Ô]rec2.XLS[Ô]).Activate
[ô]TRATAMENTO DE DATAS
Columns([Ô]AI:AI[Ô]).TextToColumns _
Destination:=Range([Ô]AI1[Ô]), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
NL = Application.WorksheetFunction.CountA(Range([Ô]d:d[Ô])) + 8
Range([Ô]D9:AL[Ô] & NL).Select
Selection.Copy
Windows([Ô]projeto_recuperacao.xlsb[Ô]).Activate
Sheets([Ô]plan3[Ô]).Activate
Range([Ô]A4[Ô]).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets([Ô]plan1[Ô]).Activate
Application.CutCopyMode = False
[ô]Esse comando limpa a área de transferência
Windows([Ô]rec2.XLS[Ô]).Close False
Porque você simplesmente não abre a planilha usando uma conexão ADO normal e faça um [Ô]DISTINCT[Ô] na coluna?
Sou iniciante em Vba e ainda não sei todos os recursos que a linguagem oferece
vou estudar sobre essa conexão ADO pode ser que isso ajude.
Se você puder postar um exemplo agradeceria.
Obrigado pela dica
vou estudar sobre essa conexão ADO pode ser que isso ajude.
Se você puder postar um exemplo agradeceria.
Obrigado pela dica
Claudinei, na hora que você for dar o select na conexão ado coloque um distinct no select mesmo por exemplo:
select campo, campos, DISTINCT(campinho), campao from tabela;
assim os campinhos repetidos não irão aparecer.. IS MAGIC!!
select campo, campos, DISTINCT(campinho), campao from tabela;
assim os campinhos repetidos não irão aparecer.. IS MAGIC!!
Primeiro gostaria de Agradecer as dicas do NALDOXD e KERLUNK mas acabei
Optando por outra solução pois estou sem trabalhado apenas com planilhas sem banco de dados mas vou postar aqui a solução que encontrei
o link é esse aqui http://www.andersonsm.com.br/2010/08/excluir-linhas-repetidas-excel-vba.html
E o codigo que apliquei para corrigir o problema foi esse aqui.
Public Sub ExcluirLinhasDuplicadasplan2() [ô] Função para excluir linha duplicada
Dim Col As Integer
Dim r As Long
Dim C As Range
Dim N As Long
Dim V As Variant
Dim Rng As Range
On Error GoTo EndMacro
Application.Calculation = xlCalculationManual
Col = ActiveCell.Column
If Selection.Rows.Count > 1 Then
Set Rng = Selection
Else
Set Rng = ActiveSheet.UsedRange.Rows
End If
N = 0
For r = Rng.Rows.Count To 1 Step -1
V = Rng.Cells(r, 6).Value [ô]o valor 6 referencia o numero da coluna, neste caso o F
If Application.WorksheetFunction.CountIf(Rng.Columns(6), V) > 1 Then [ô]o valor 6 referencia o numero da coluna, neste caso o F
Rng.Rows(r).EntireRow.Delete
N = N + 1
End If
Next r
EndMacro:
Application.Calculation = xlCalculationAutomatic
End Sub
Optando por outra solução pois estou sem trabalhado apenas com planilhas sem banco de dados mas vou postar aqui a solução que encontrei
o link é esse aqui http://www.andersonsm.com.br/2010/08/excluir-linhas-repetidas-excel-vba.html
E o codigo que apliquei para corrigir o problema foi esse aqui.
Public Sub ExcluirLinhasDuplicadasplan2() [ô] Função para excluir linha duplicada
Dim Col As Integer
Dim r As Long
Dim C As Range
Dim N As Long
Dim V As Variant
Dim Rng As Range
On Error GoTo EndMacro
Application.Calculation = xlCalculationManual
Col = ActiveCell.Column
If Selection.Rows.Count > 1 Then
Set Rng = Selection
Else
Set Rng = ActiveSheet.UsedRange.Rows
End If
N = 0
For r = Rng.Rows.Count To 1 Step -1
V = Rng.Cells(r, 6).Value [ô]o valor 6 referencia o numero da coluna, neste caso o F
If Application.WorksheetFunction.CountIf(Rng.Columns(6), V) > 1 Then [ô]o valor 6 referencia o numero da coluna, neste caso o F
Rng.Rows(r).EntireRow.Delete
N = N + 1
End If
Next r
EndMacro:
Application.Calculation = xlCalculationAutomatic
End Sub
Tópico encerrado , respostas não são mais permitidas