Ir para conteúdo
Fórum Script Brasil
  • 0

Adaptar Rotina VBA para Excluir Linhas com Diversos Critérios


jlvfranca

Pergunta

Prezados, bom dia.

Tenho uma rotina que vou excluindo as linhas de acordo com a palavra digita.

Sub ExcluirLinha()
Dim Col As Variant, Word As String
Let Col = InputBox("Em qual coluna devo manter o foco da busca da palavra?")
If Len(Col) > 0 And Not Col Like "*[!0-9]*" Then Col = Val(Col)
Let Word = InputBox("Que palavra devo encontrar nas Linhas para apagá-las?")
With Columns(Col)
.Replace Word, "#N/A", xlWhole
.SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete
End With
End Sub

Encontrei uma outra rotina mais dinâmica, mas estou apanhando para adaptá-la as minhas necessidades. Quero incluir na rotina, abaixo, os seguintes critérios.

Exclua na coluna “AM” tudo que for <> “Assistidos”;

Exclua na coluna “N” tudo que for <> “P”;

Exclua na coluna “L” tudo que for <> “Renda Mensal - Percentual” , “Renda Mensal – Vitalícia”, “Renda Mensal – Quotas” e “Renda Vitalícia em Quotas”.

Sub ExcluirLinha2()
Dim vDeletaValor As String
Dim vRange As Range
Dim vModoCalcular As Long
With Application
vModoCalcular = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
vDeletaValor = "Assistidos"
With ActiveSheet
.AutoFilterMode = False
.Range("N2:N" & .Rows.Count).AutoFilter Field:=1, Criteria1:=vDeletaValor
With ..AutoFilter.Range
On Error Resume Next
Set vRange = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not vRange Is Nothing Then vRange.EntireRow.Delete
End With
.AutoFilterMode = False
End With
With Application
.ScreenUpdating = True
.Calculation = vModoCalcular
End With
End Sub


Alguém poderia me ajudar?
Agradeço antecipadamente,

jlvfrança

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa tarde @jlvfranca.

Eu vi que esta usando o filtro para pegar essa informação.
Eu nunca usei ele para excluir informações mais recomendo você usar o for para excluir informações:

Dim uLinha as long
uLinha = .cells(rows.count, "A").end(xlup).row
For x = uLinha to 1 step -1
	'Aqui você coloca os campos que vai verificar e ver se exclui os dados ou não.
nexr x

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...