Abaixo o código para deletar/excluir linhas. As referências estão de acordo com a sua planilha "Base".
Se atender a sua necessidade é só encaixá-lo no seu código já existente.
Neste código eu utilizei o 'Find' em substituição ao 'CountIf' visto que este segundo considera o conteúdo 9.1 como sendo igual a 9.10, que está no intervalo nomeado, em consequência a linha com 9.1 não é deletada. Entre o 'CountIf' e o 'Find' utilize o que melhor te atende.
Sub DeletaLinhas()
Dim ultima As Long, c As Range, i As Long
ultima = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
For i = ultima To 4 Step -1
Set c = Range("DadosAMX").Find(Cells(i, 45), lookat:=xlWhole)
If c Is Nothing Then Rows(i).Delete
Next i
End Sub
dica - no seu código vi este loop
For i = 3 To ultima
Cells(i, 1).Value = i - 2
Next i
experimente substituir por esta linha (é mais rápida na execução)
Range("A3").Value = 1: Range("A3").AutoFill Range("A3:A" & ultima), xlFillSeries
Sua solução foi fantástica, e adaptei colorindo as células da primeira coluna ao invés de excluir. Ficou muito mais rápido.
Ainda tenho que incluir outros critérios e essa é a melhor opção para o meu caso.
Osvaldomp, muitíssimo obrigado por sua ajuda.
For i = ultima To 4 Step -1 'Rotina colorir linhas que constam no intervalo AMX
Set intervalo = Range("DadosAMX").Find(Cells(i, 45), lookat:=xlWhole)
If Not intervalo Is Nothing Then Cells(i, 1).Interior.ColorIndex = 36
Next i
Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.
Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.
Postado : 13/05/2016 9:03 am