Página 1 de 1

Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 09:32
por atcgfc
Boa tarde,

Sou iniciante em VBA e tou a tentar desenvolver uma macro que possa eliminar vários erros de uma coluna. No entanto, ainda não dei com a função que possa eliminar vários erros e não apenas um dos erros.

Conseguem ajudar-me ?

Eliminar Erros N.º 19,98,311,715,716 e 799

Dim W As Worksheet
Dim linha As Long
Dim ultima_linha As Long

Set W = Sheets("Folha1")

ultima_linha = W.UsedRange.Rows.Count

With W
For linha = ultima_linha To 2 Step -1
If Cells(linha, "C") = "19" Then
.Rows(linha).Delete

End If

Next linha
End With

Cumprimentos,

Álvaro

Re: Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 10:47
por osvaldomp
Olá, @atcgfc .

Acrescente os comandos abaixo ao seu código, nas devidas posições.
Código: Selecionar todos
 Dim arr As Variant
  arr = Array(19, 98, 311, 715, 716, 799)
...
...
  If Not IsError(Application.Match(Cells(linha, "C"), arr, 0)) Then .Rows(linha).Delete

Re: Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 11:36
por atcgfc
Obrigado @osvaldomp pela rápida resposta

Tinha escrito que não tava a dar, mas está. como tenho cerca de 25 mil linhas, está a demorar imenso.

Tenho que ver como faço isto mais rápido.

Cumprimentos,

Álvaro Gonçalves

Re: Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 11:55
por osvaldomp
Olá, @atcgfc .

Qual é a mensagem de erro ?

Você poderia disponibilizar uma amostra do seu arquivo Excel com alguns dados e com o código que você está tentando utilizar ?

Re: Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 12:12
por atcgfc
Não consigo executar, demora imenso tempo. tem como acelerar o processo ?

Re: Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 15:20
por osvaldomp
Experimente este.
Código: Selecionar todos
Sub DeletaLinhas() 'Eliminar Erros N.º 19,98,311,715,716 e 799
 Dim LR As Long, X
  With ActiveSheet
   .AutoFilterMode = False
   LR = .Cells(.Rows.Count, 3).End(xlUp).Row
   X = Array("19", "98", "311", "715", "716", "799")
   .Range("A1:H1").AutoFilter Field:=3, Criteria1:=X, Operator:=xlFilterValues
   .Range("A2:H" & LR).SpecialCells(12).EntireRow.Delete
   .AutoFilterMode = False
  End With
End Sub

Re: Iniciante | Apagar várias linhas com base em códigos de coluna

Enviado: 17 Mai 2022 às 17:46
por atcgfc
Muito obrigado. Ficou perfeito