• 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 automatisch verwijderen in een werkblad

Status
Niet open voor verdere reacties.

seminifeer

Gebruiker
Lid geworden
16 okt 2006
Berichten
10
Ik ben bezig met een macro voor een worksheet. In kolom X (X8:X2000) staan diverse waardes. Hoe kan ik ervoor zorgen, met welke formule, dat alle rijen waarin, in de betreffende kolom in de cel een waarde 0 staat, automatisch verwijderd worden?
 
Hi

Je kan een Autofilter gebruiken, en dat combineren met .SpecialCells(xlCellTypeVisible) om de gefilterde cellen te hebben.

Hier heb je de nodige lectuur.

Wigi

Als je de nodige info geeft over de bereiken (of een bestandje bijhangt), dan schrijf ik er de juiste code voor. Trouwens: geen loops gebruiken voor een groot bereik.

Wigi
 
Ik maak macro's altijd met de macrorecorder omdat ik echt geen bal verstand heb van programmeren. Daarom gaf ik een celbereik (Bijvoorbeeld P8:P2000), Dan kan ik de formule zelf in een cel invoeren.

Alvast bedankt voor je info
 
Ik maak macro's altijd met de macrorecorder omdat ik echt geen bal verstand heb van programmeren. Daarom gaf ik een celbereik (Bijvoorbeeld P8:P2000), Dan kan ik de formule zelf in een cel invoeren.

Alvast bedankt voor je info

Formules heb je niet nodig, wel macrocode.

Voer dit eens uit op een kopie van je bestand. De rijen waarbij in kolom X een 0 staat, worden eruit gehaald.

Code:
Sub Macro1()
    Dim rng As Range, rng2 As Range, rngAF As Range
    Application.DisplayAlerts = False
    
    Set rngAF = Range("X8:X2000")
    
    With rngAF
        .AutoFilter
        .AutoFilter Field:=1, Criteria1:="0"
    End With
        
    With ActiveSheet.AutoFilter.Range
        On Error Resume Next
           Set rng2 = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
        On Error GoTo 0
    End With
    
    If Not rng2 Is Nothing Then
       Set rng = ActiveSheet.AutoFilter.Range
       rng.Offset(1).Resize(rng.Rows.Count - 1).Delete
    End If
    
    ActiveSheet.ShowAllData
    rngAF.AutoFilter
    Application.DisplayAlerts = True
End Sub

Werkt het?

Wigi
 
Dit is allemaalheeltechnisch. Ik heb echer een macro waar ik dit stukje macrocode in moet plakken maar ik weet niet op welke plek dat kan.
 
Hahahahha...dat snap ik....maar ik heb geen verstand van programmeren he. Ik zal morgen de code wel even mailen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan