Jump to content
Fórum Script Brasil
  • 0

Adaptar Rotina VBA para Excluir Linhas com Diversos Critérios


jlvfranca

Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148681
    • Total Posts
      644506
×
×
  • Create New...