Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador duplicado. Mostrar todas as postagens
Mostrando postagens com marcador duplicado. Mostrar todas as postagens

VBA Excel - Deletando linhas duplicadas - Delete duplicate rows


Public Sub DelDupliRows (rng As Range)' Author:                  Date:                   Contact:' André Bernardes 29/01/2009 12:18 bernardess@gmail.com' Esta SUB deletará registros (linhas) duplicadas, será baseada no Range passado' como parâmetro. Quando esta SUB achar mais duma ocorrência no mesmo Range,' todas as ocorrências seguintes serão deletadas.
Dim r As LongDim n As LongDim v As Variant
On Error GoTo EndMacro
Let Application.ScreenUpdating = FalseLet Application.Calculation = xlCalculationManualLet Application.StatusBar = "Linha sendo processada: " & _ Format(rng.Row, "#,##0")
Let n = 0
For r = rng.Rows.Count To 2 Step -1If r Mod 500 = 0 ThenLet Application.StatusBar = "Processing Row: " & Format(r, "#,##0")End If
Let v = rng.Cells(r, 1).Value
If v = vbNullString ThenIf Application.WorksheetFunction.CountIf(rng.Columns(1), vbNullString) > 1 Thenrng.Rows(r).EntireRow.DeleteLet n = n + 1End IfElseIf Application.WorksheetFunction.CountIf(rng.Columns(1), v) > 1 Thenrng.Rows(r).EntireRow.DeleteLet n = n + 1End IfEnd IfNext r
EndMacro:Let Application.StatusBar = FalseLet Application.ScreenUpdating = TrueLet Application.Calculation = xlCalculationAutomatic
MsgBox CStr(n) & "Linha(s) Duplicada(s) Deleta(s) "End Sub

Deixe os seus comentários! Envie este artigo, divulgue este link na sua rede social...


Tags: VBA, Excel, Column, Coluna, Delete, Linha, Plan, Planilhas, Report, Row,  rows,worksheet, lines, duplicate, duplicado, dados, paste, cut


VBA Excel - Deletando linhas - 09 - Deletando linhas Duplicadas


header2.png

Esta função eliminará todas as linhas duplicadas em um intervalo.

Para usá-la, selecione um intervalo de uma única coluna de células, compreendendo o intervalo de linhas a partir da qual são duplicados a ser excluído, por exemplo, C2:C99. Os valores da coluna selecionada serão comparados para determinar se uma linha tem duplicatas.

Linhas inteiras não são comparadas umas contra as outras. Apenas a coluna selecionada é utilizada para comparação.

Quando forem encontrados valores duplicados na coluna, a primeira linha continua, e todas as linhas subseqüentes são excluídas.


Public Sub DeleteDuplicateRows() 

Dim R As Long  

Dim N As Long 

Dim V As Variant 

Dim Rng As Range 




On Error GoTo EndMacro 

Let Application.ScreenUpdating = False



Let Application.Calculation = xlCalculationManual 
Set Rng = Application.Intersect(ActiveSheet.UsedRange, _                      ActiveSheet.Columns(ActiveCell.Column)) 
Let Application.StatusBar = "Processando as linhas: " & Format(Rng.Row, "#,##0") 

Let N = 0 
For R = Rng.Rows.Count To 2 Step -1 
If R Mod 500 = 0 Then     
Let Application.StatusBar = "Processando as linhas: " & Format (R,  "#,##0") 
End If 

Let V = Rng.Cells(R, 1).Value 

If V = vbNullString Then     
If Application.WorksheetFunction.CountIf(Rng.Columns(1),  vbNullString) > 1 Then         Rng.Rows(R).EntireRow.Delete        
Let 
N = N + 1     
End If 
Else     
If Application.WorksheetFunction.CountIf(Rng.Columns(1), V) > 1 Then         Rng.Rows(R).EntireRow.Delete         
Let 
N = N + 1     
End If 
End If 
Next R 

EndMacro: 
Let Application.StatusBar = False 
Let Application.ScreenUpdating = True 
Let Application.Calculation = xlCalculationAutomatic 
MsgBox "Linhas Duplicadas foram Deletadas: " & CStr(N) 

End Sub
 

TagsExcel, Column, Coluna, Delete, Linha, Plan, Planilhas, Report, Row,  rows,worksheet, lines



André Luiz Bernardes
A&A® - In Any Place.

MS Excel - Deletando linhas - 07 – Linhas duplicadas - Delete duplicate rows


Termo de Responsabilidade












Olá novamente... Vez por outra colamos bases de dados no MS Excel para análise e sem que nos apercebamos dados duplicados acabam ficando juntos em nosso range.

Como efetuar uma depuração que retire as ocorrências duplicadas deixando somente uma versão de cada registro?

Pois bem, a solução abaixo é o resultado de tal necessidade. Implementem, deixem o crédito para quem desenvolveu e tudo estará bem.

Public Sub DelDupliRows (rng As Range)
' Author: Date: Contact:
' André Bernardes 29/01/2009 12:18 bernardess@gmail.com
' Esta SUB deletará registros (linhas) duplicadas, será baseada no Range passado
' como parâmetro. Quando esta SUB achar mais duma ocorrência no mesmo Range,
' todas as ocorrências seguintes serão deletadas.

Dim r As Long
Dim n As Long
Dim v As Variant

On Error GoTo EndMacro

Let Application.ScreenUpdating = False
Let Application.Calculation = xlCalculationManual
Let Application.StatusBar = "Linha sendo processada: " & _ 
Format(rng.Row, "#,##0")

Let n = 0

For r = rng.Rows.Count To 2 Step -1
If r Mod 500 = 0 Then
Let Application.StatusBar = "Processing Row: " & Format(r, "#,##0")
End If

Let v = rng.Cells(r, 1).Value

If v = vbNullString Then
If Application.WorksheetFunction.CountIf(rng.Columns(1), vbNullString) > 1 Then
rng.Rows(r).EntireRow.Delete
Let n = n + 1
End If
Else
If Application.WorksheetFunction.CountIf(rng.Columns(1), v) > 1 Then
rng.Rows(r).EntireRow.Delete
Let n = n + 1
End If
End If
Next r

EndMacro:
Let Application.StatusBar = False
Let Application.ScreenUpdating = True
Let Application.Calculation = xlCalculationAutomatic

MsgBox CStr(n) & "Linha(s) Duplicada(s) Deleta(s) "
End Sub

TagsExcel, Column, Coluna, Delete, Linha, Plan, Planilhas, Report, Row,  rows,worksheet, lines, duplicate, duplicado, dados, paste, cut



André Luiz Bernardes
A&A® - In Any Place.


diHITT - Notícias