Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Excluir linha de acordo com mais de um criterio
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Sex Nov 27, 2015 9:04 am
Excluir linha de acordo com mais de um criterio
Bom dia!
Eu tenho uma planilha, no qual precisava de uma macro para apagar linhas que tivessem as 3 primeiras colunas idênticas. Por exemplo, se a linha 1 tiver as 3 primeiras colunas iguais a da linha 27, a linha 1 INTEIRA fosse apagada (tem que ser de cima baixo!!). Eu li um post seu parecido com a minha dúvida (http://www.tomasvasquez.com.br/blog/mic ... m-criterio), mas precisava de uma adaptação pra minha planilha, e sou novato em linguagem VBA!
Agradeço desde ja!
Eu tenho uma planilha, no qual precisava de uma macro para apagar linhas que tivessem as 3 primeiras colunas idênticas. Por exemplo, se a linha 1 tiver as 3 primeiras colunas iguais a da linha 27, a linha 1 INTEIRA fosse apagada (tem que ser de cima baixo!!). Eu li um post seu parecido com a minha dúvida (http://www.tomasvasquez.com.br/blog/mic ... m-criterio), mas precisava de uma adaptação pra minha planilha, e sou novato em linguagem VBA!
Agradeço desde ja!
- netocasaroli
- Consultor
- Mensagens: 219
- Registrado em: Seg Mai 11, 2015 5:24 pm
- Localização: Londrina-PR
Re: Excluir linha de acordo com mais de um criterio
Bom dia Filipe,
Primeiramente, bem-vindo ao fórum. Compacte seu arquivo e poste para podermos ajudá-lo.
Primeiramente, bem-vindo ao fórum. Compacte seu arquivo e poste para podermos ajudá-lo.
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Sex Nov 27, 2015 9:04 am
Re: Excluir linha de acordo com mais de um criterio
Bom dia Neto!
Segue em anexo a planilha.
OBS: como a planilha contem itens de trabalho (confidenciais), eu os substitui por um x.
Fico no aguardo, abraço!
Segue em anexo a planilha.
OBS: como a planilha contem itens de trabalho (confidenciais), eu os substitui por um x.
Fico no aguardo, abraço!
- Anexos
-
- Exemplo.rar
- (529.78 KiB) Baixado 166 vezes
- netocasaroli
- Consultor
- Mensagens: 219
- Registrado em: Seg Mai 11, 2015 5:24 pm
- Localização: Londrina-PR
Re: Excluir linha de acordo com mais de um criterio
Filipe,
Insira um novo módulo e utilize o código abaixo:
Não esqueça de salvar a planilha habilitada para macros (.xlsm).
Qualquer dúvida ou problema, poste aí...
Insira um novo módulo e utilize o código abaixo:
Código: Selecionar todos
Option Explicit
Sub ExcluiDuplicatas()
'-------------------------------------------------------------------------------------------------------'
' Autor: Neto Casaroli '
' Criação: 30/11/2015 '
' Comentário: Exclui linhas em duplicidade, conforme valores da coluna C '
'-------------------------------------------------------------------------------------------------------'
'Declaração das Variáveis
Dim Intervalo As Range
Dim Celula As Range
Dim Contagem As Long 'Variável que identificará a duplicidade
'Define o intervalo para análise do dados
Set Intervalo = Sheet1.Range("C2:C" & Sheet1.Cells(Rows.Count, 3).End(xlUp).Row)
'Verifica dados em duplicidade no intervalo de dados e exclui as linhas tais dados
InicioLoop:
For Each Celula In Intervalo
Contagem = Application.WorksheetFunction.CountIf(Intervalo, Celula.Value)
If Contagem > 1 And Celula.Value <> 0 Then
Celula.EntireRow.Delete 'Exclui toda a linha
Exit For 'Sai do loop
GoTo InicioLoop 'Inicia o loop desde o começo
End If
Next Celula
End Sub
Qualquer dúvida ou problema, poste aí...
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Sex Nov 27, 2015 9:04 am
Re: Excluir linha de acordo com mais de um criterio
Quase perfeito Neto! Só tem uma questão: pode ocorrer da coluna B ter itens duplicados, e na coluna C ambos serem 0. Ou até a coluna A ter itens duplicados, e as colunas B e C serem 0. Nesses dois casos, a macro não pegaria! Teria como fazer um ajuste para incluir esses dois casos particulares?
Um abraço.
Um abraço.
- netocasaroli
- Consultor
- Mensagens: 219
- Registrado em: Seg Mai 11, 2015 5:24 pm
- Localização: Londrina-PR
Re: Excluir linha de acordo com mais de um criterio
Deixa só eu entender uma coisa: a verificação de duplicidade deve ser feita, então, em cada coluna (A, B e C) quando as demais forem 0? Por exemplo: no modelo enviado, as linhas 2, 3 e 4 possuem os mesmos valores para a coluna A, mas valores diferentes para as colunas B e C. As linhas 2 e 3 devem ser excluídas?
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Sex Nov 27, 2015 9:04 am
Re: Excluir linha de acordo com mais de um criterio
Bom dia Neto!
Não, somente se tiverem linhas com as 3 primeiras colunas iguais.
Por exemplo :
136006 1492030 136011
136006 1492030 136011
ou
136069 1492291 0
136069 1492291 0
Caso tenha qualquer um dos valores diferentes, a macro pularia e nao apagaria a linha
por exemplo:
132337 1474957 132338
132337 1474957 132339
ou
136069 1492288 0
136069 1492289 0
Nesses dois casos, não deve ser apagado!!
Um abraço.
Não, somente se tiverem linhas com as 3 primeiras colunas iguais.
Por exemplo :
136006 1492030 136011
136006 1492030 136011
ou
136069 1492291 0
136069 1492291 0
Caso tenha qualquer um dos valores diferentes, a macro pularia e nao apagaria a linha
por exemplo:
132337 1474957 132338
132337 1474957 132339
ou
136069 1492288 0
136069 1492289 0
Nesses dois casos, não deve ser apagado!!
Um abraço.
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Sex Nov 27, 2015 9:04 am
Re: Excluir linha de acordo com mais de um criterio
PS: Talvez esse fluxograma ajude a entender o que eu quero!
Muito obrigado pela atenção!
Muito obrigado pela atenção!
- Anexos
-
- FLUXO.png (26.19 KiB) Exibido 5558 vezes
- netocasaroli
- Consultor
- Mensagens: 219
- Registrado em: Seg Mai 11, 2015 5:24 pm
- Localização: Londrina-PR
Re: Excluir linha de acordo com mais de um criterio
Filipe,
Tente agora:
Tente agora:
Código: Selecionar todos
Option Explicit
Sub ExcluiDuplicatas()
'-------------------------------------------------------------------------------------------------------'
' Autor: Neto Casaroli '
' Criação: 03/12/2015 '
' Comentário: Exclui linhas em duplicidade '
'-------------------------------------------------------------------------------------------------------'
'Declaração das Variáveis
Dim Intervalo1 As Range
Dim Intervalo2 As Range
Dim Intervalo3 As Range
Dim Celula As Range
Dim Contagem1 As Long 'Variável que identificará a duplicidade na coluna A
Dim Contagem2 As Long 'Variável que identificará a duplicidade na coluna B
Dim Contagem3 As Long 'Variável que identificará a duplicidade na coluna C
'Define o intervalo para análise do dados
Set Intervalo1 = Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, 1).End(xlUp).Row)
Set Intervalo2 = Sheet1.Range("B2:B" & Sheet1.Cells(Rows.Count, 2).End(xlUp).Row)
Set Intervalo3 = Sheet1.Range("C2:C" & Sheet1.Cells(Rows.Count, 3).End(xlUp).Row)
'Verifica dados em duplicidade no intervalo de dados e exclui as linhas tais dados
InicioLoop:
For Each Celula In Intervalo1
Contagem1 = Application.WorksheetFunction.CountIf(Intervalo1, Celula.Value)
Contagem2 = Application.WorksheetFunction.CountIf(Intervalo2, Celula.Offset(0, 1).Value)
Contagem3 = Application.WorksheetFunction.CountIf(Intervalo3, Celula.Offset(0, 2).Value)
If Contagem1 > 1 And Contagem2 > 1 And Contagem3 > 1 And Celula.Value <> 0 Then
Celula.EntireRow.Delete 'Exclui toda a linha
GoTo InicioLoop 'Inicia o loop desde o começo
End If
Next Celula
End Sub
-
- Acabou de chegar
- Mensagens: 6
- Registrado em: Sex Nov 27, 2015 9:04 am
Re: Excluir linha de acordo com mais de um criterio
Neto, desculpe te incomodar, mas nada aconteceu! Você chegou a testar na planilha? eu troquei o nome da aba pra "Sheet1", mesmo assim nada acontece!
Um abraço!
Um abraço!