• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

rijen verwijderen op basis van een getalfilter met macro

Status
Niet open voor verdere reacties.

Depant

Verenigingslid
Lid geworden
5 aug 2015
Berichten
238
Hallo allemaal,

Kan iemand mij helpen om de rijen in een selectie van een getalfilter te verwijderen op kolom c .:(
Alle rijen met een waarde in kolom <304000 en alle rijen met een waarde > 340000 moeten verwijderd worden.
Vervolgens moeten ze oplopend gesorteerd in kolom c worden.

Ik hoop dat jullie mij kunnen helpen.

Vriendelijk Groeten
Depant

Bekijk bijlage 1.xlsm
 
zoiets?
niet getest

Code:
Sub mde()

lr = Sheets("SQLHHA20201001074019353038").UsedRange.Rows.Count

With Sheets("SQLHHA20201001074019353038")
    For i = lr To 1 Step -1
        If Cells(i, 3).Value < 304000 Then
            .Rows(i).Delete
        ElseIf Cells(i, 3).Value > 340000 Then
            Rows(i).Delete Shift:=xlUp
        End If
    Next i
End With
End Sub
 
Ik zou eerst sorteren en dan verwijderen. (gaat een stuk sneller) De macro kan je toch opnemen?
 
Code:
Sub hsv()
Application.DisplayAlerts = False
With Sheets(1).Cells(1).CurrentRegion.Offset(1)
 .AutoFilter 3, "<304000", xlOr, ">340000"
 .Offset(1).Delete
 .AutoFilter
 .Sort .Cells(2, 3), , , , , , , 1
End With
End Sub
 
Code:
Sub hsv()
Application.DisplayAlerts = False
With Sheets(1).Cells(1).CurrentRegion.Offset(1)
 .AutoFilter 3, "<304000", xlOr, ">340000"
 .Offset(1).Delete
 .AutoFilter
 .Sort .Cells(2, 3), , , , , , , 1
End With
End Sub


Hallo,

Bedankt voor de oplossingen. De eerste werkte ook maar bij een bestand van een paar duizend regels duur het toch lang.
Ik ga deze optie ook proberen om te kijken of deze sneller is. Omdat "Application.DisplayAlerts = False" mij sneller lijkt te gaan.

Groeten Depant
 
Displayalerts geeft niet meer snelheid, enkel een melding te onderdrukken bij het deleten van de rijen.

Application.screenupdating =false kan wel meer snelheid opleveren.
 
Goedemorgen,

Ik kreeg een foutmelding op het autofilter.
Kunt u mij uitleggen wat daar mis mee is?

Sub hsv()
Application.DisplayAlerts = False
With Sheets(1).Cells(1).CurrentRegion.Offset(1)
.AutoFilter 3, "<304000", xlOr, ">340000"
.Offset(1).Delete
.AutoFilter
.Sort .Cells(2, 3), , , , , , , 1
End With
End Sub

Groeten Depant
 
Dat de range waarschijnlijk niet in A1 begint.

Je kan Application.displayalerts ook weglaten met een aanvulling in de code.
Code:
.Offset(1)[COLOR="#FF0000"].entirerow[/COLOR].Delete

De displayalerts ben je eigenlijk nodig bij een Tabel (ListObject).
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan