• 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

Status
Niet open voor verdere reacties.

Morsyd

Gebruiker
Lid geworden
25 dec 2007
Berichten
165
Hallo,
ik heb een tabblad "Inhoud" vol met data. In kolom A staat enkel de waarde 0 of 1.
Indien de waarde 0 is moet de rij verwijderd worden...

momenteel doe ik met deze code:

Code:
Sheets("Inhoud").Activate
rij = 2
Do Until Range("A" & rij).Value = ""
If Range("A" & rij).Value = 1 Then
rij = rij + 1
Else: Rows(rij).Delete
End If
Loop

ik vroeg me af of dit op een snellere manier kan, want het lukt momenteel wel, maar gezien het grote aantal rijen duurt dit een eindje?

bedankt alvast!
 
Hoi,

Rijen verwijderen doe je van onderen naar boven.

Edit: Code verwijderd.
Je mag wat mij betreft de vraag als opgelost zetten gezien je profiel.
Nergens wordt er door jou gereageerd als het is goed bevonden, maar wel als er iets aan schort.

Het spelletje blijft alleen leuk als er ook gereageerd wordt of het daadwerkelijk heeft geholpen,.....ook voor zoekenden in het forum.

Succes verder.
 
Laatst bewerkt:
Laatst bewerkt door een moderator:
Hoi,

Zo lijkt het wel, bekijk je eigen gestelde vragen maar eens.
Eénendertig in totaal waarvan weinig tot geen reacties.

Maar goed, ik ben hier ook geen scheidsrechter, alleen maar een helpende hand die zich af en toe frustreert aan het gespeelde spelletje.

Hierbij de code, het lag nog klaar.

Test het maar eens.
Code:
Option Explicit
Sub hsv()
Dim i As Long
Application.ScreenUpdating = False
With Sheets("Inhoud")
  For i = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If .Cells(i, 1) = 0 Then .Cells(i, 1).EntireRow.Delete
  Next i
End With
End Sub


 
Hartelijk dank Harry!
Het werkt inderdaad, bedankt!

'k zal deze opgelost plaatsen!
(Als ik trouwens goed tel hebben er 20 van mijn vragen de status "opgelost", wat toch een reactie lijkt van mij...)
 
Graag gedaan Morsyd,

Uiteraard is dat een teken, maar een reactie achterlaten is juist het leuke van een forum.
Veel succes verder met het programmeren.
 
Code:
Sub test()
    With [Inhoud!A1].CurrentRegion
        .AutoFilter 1, "0"
        .SpecialCells(xlCellTypeConstants).EntireRow.Delete
        .AutoFilter
    End With
End Sub
zie hier...snellere code dan het antwoord :p
 
Laatst bewerkt:
Hallo Jack,

1. Sneller misschien als het een aaneengesloten bereik is, anders ga je in de fout.
2. Het gebruik van haken reduceert de snelheid met ±20% (heb ik gelezen van JKP).
3. Je kopnaam valt weg in de code als je 'xlcelltypeconstants' gebruikt (rij = 2 staat er in de openingsvraag).
4. De nul hoeft niet tussen dubbele quotes.

Zomaar een paar dingetjes in een klein stukkie code. ;)

Code:
Sub hsv()
Dim rng As Range
    With Sheets("Inhoud")
       Set rng = .Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
       rng.AutoFilter 1, 0
        .AutoFilter.Range.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
      rng.AutoFilter
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan