• 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.

Lijnen met waarde 0 laten verdwijnen (macro)

Status
Niet open voor verdere reacties.

freezer95

Gebruiker
Lid geworden
13 mrt 2012
Berichten
21
Hallo,
Ik wil in een werkblad waarop ik gegevens automatisch binnen krijg een knop maken om de rijen 9,12 en 15 waar in de cel B waarde nul staat te laten verdwijnen zodat ik dit gemakkelijker kan kopieren
kan iemand me daarmee op weg zetten ? zie bijlage
Bekijk bijlage testDoc PR2.xlsx
 
Beste,

Moet dat met een macro? Je kan ook een filteren toepassen in kolom B en in het dialoogvenster van de filter de lege cellen afvinken
 
Beste,

Moet dat met een macro? Je kan ook een filteren toepassen in kolom B en in het dialoogvenster van de filter de lege cellen afvinken

Bedoeling is om zoveel mogelijk automatisch te laten verlopen. bij het afvinken blijven de rijen wel bestaan waar het document iets minder overzichtelijk wordt. Ik had de rijen graag echt laten verwijderen.
Alvast bedankt.
 
Beste,

Ben je vertrouwd met VBA? Zo ja, gebruik onderstaande code :

Code:
Sub rij_met_nul_wissen()
Application.ScreenUpdating = False
lastrow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
MsgBox (lastrow)
For rij = 1 To lastrow
If Cells(rij, 2).Value = 0 Then
Cells(rij, 1).Select
Selection.EntireRow.Delete
End If
Next
Application.ScreenUpdating = False
End Sub

Bepaalde forumleden hebben een hekel aan een dergelijke structuur maar ik kan geen krachtige instructies bedenken. Daarvoor is mijn VBA-kennis te beperkt.
 
@tkint, Het is niet zozeer de structuur waar bepaalde forumleden een hekel aan hebben alleen is de code verkeerd;) Rijen moet je van onder naar boven verwijderen anders komt de variabele 'rij' niet meer overeen met de werkelijk rij. Zet in het voorbeeldbestandje maar eens een paar extra 0-en in kolom B en je zal zien wat ik bedoel.
Maar een poging wagen is natuurlijk altijd goed.:thumb:

Rij voor rij
Code:
Sub VenA()
Dim j As Long
Application.ScreenUpdating = False
With Sheets("Maandtotaal")
  For j = .Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If .Cells(j, 2) = 0 Then .Rows(j).Delete
  Next j
End With
End Sub

Met het autofilter
Code:
Sub VenA1()
Application.ScreenUpdating = False
With Sheets("Maandtotaal").Cells(1).CurrentRegion
  .AutoFilter 2, 0
  .Offset(1).EntireRow.Delete
  .AutoFilter 2
End With
End Sub

Met specialcells
Code:
Sub VenA2()
With Sheets("Maandtotaal").Cells(1).CurrentRegion.Columns(2)
  .Replace "0", "", xlWhole
  .SpecialCells(4).EntireRow.Delete
End With
End Sub
 
Voor zover ik VB ken heb ik het erin gekregen.
Enkel heb ik nu een melding waarin de laatste rij met tekst gevraagd word. Dus moet ik een aantal keer op de knop drukken om alle lijnen met nul weg te krijgen.
Als je begrijpt wat ik bedoel.
Ik heb gewoon bovenstaande code gebruikt.
groeten
Ivan


Beste,

Ben je vertrouwd met VBA? Zo ja, gebruik onderstaande code :

Code:
Sub rij_met_nul_wissen()
Application.ScreenUpdating = False
lastrow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
MsgBox (lastrow)
For rij = 1 To lastrow
If Cells(rij, 2).Value = 0 Then
Cells(rij, 1).Select
Selection.EntireRow.Delete
End If
Next
Application.ScreenUpdating = False
End Sub

Bepaalde forumleden hebben een hekel aan een dergelijke structuur maar ik kan geen krachtige instructies bedenken. Daarvoor is mijn VBA-kennis te beperkt.
 
#5 gemist waarin ook al staat dat de code waarschijnlijk niet werkt en er drie andere suggesties gegeven zijn die mogelijk wel werken?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan