Ir ao conteúdo

Posts recomendados

Postado

Olá galera!

 

Tenho uma planilha no Excel que verifica entre duas pastas de trabalho se existem valores duplicados, se sim ela deveria excluir a linha da pasta que está sendo comparada. 

 

Porém ela está excluindo somente a célula e não a linha, o que está dando problema, exemplo. 

 

Base

Lapis - 10

Caderno - 20

Caneta -30

 

Comparada

Lapis - 10

Caderno - 20

Lapiseira - 30

 

Ao executar ele apaga a celula LAPIS e CADERNO, fazendo com que Lapiseira assuma a posição com quantidade 10, incorreto! Preciso que ele apague a linha toda. 

 

Segue o código bem simples.

 

 

 

 

 

 

Sub teste()
Dim iListCount As Integer
Dim iCtr As Integer


'Desligue a atualização da tela para acelerar a macro.
Application.ScreenUpdating = False


'Obter contagem de registros para pesquisar (lista que será excluída).
iListCount = Sheets("teste2").Range("A2:A10").Rows.Count


'Percorra através da lista "mestre".
For Each x In Sheets("teste1").Range("A2:A10")

'Percorra todos os registros na segunda lista.
   For iCtr = 1 To iListCount
     
'Faça comparação do próximo registro.
'Para especificar uma coluna diferente, altere 1 para o número da coluna.
      
      If x.Value = Sheets("teste2").Cells(iCtr, 1).Value Then
       
'Se a correspondência for verdadeira, exclua a linha.
       
       Sheets("teste2").Cells(iCtr, 1).Delete xlShiftUp
       
         ' Sheets("teste2").Rows(iCtr, 1).Delete xlShiftUp
                  
     
'Incrementar contador para considerar a linha excluída.


         iCtr = iCtr + 1
      End If
   Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "beleza, o anúncios repetidos de DalilaMix foram limpos, vamos para o próximo?"
End Sub
 

Postado

Boa tarde @André_Arruda, obrigado pela sua atenção, dei uma limpada no código para ficar mais organizado, apliquei o que falou, porém agora ele limpa a planilha inteira e não só a linha. 

 

Vou lhe enviar a planilha também para que possa ver. 

 

Planilha exemplo: http://tsmix.com.br/teste.xlsm

 

Sub tsmix_suemar()
Dim iListCount As Integer
Dim iCtr As Integer

    Application.ScreenUpdating = False

    iListCount = Sheets("SUEMAR").Range("C4:C10").Rows.Count

    For Each x In Sheets("TSMIX").Range("C4:C100")

    For iCtr = 1 To iListCount
           
           
     If x.Value = Sheets("SUEMAR").Cells(iCtr, 1).Value Then
        
           Sheets("SUEMAR").Cells(iCtr, 1).EntireRow.Delete
        
           iCtr = iCtr + 1
           
    End If
           
   Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "beleza, o anúncios repetidos de DalilaMix foram limpos, vamos para o próximo?"
End Sub

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!