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

Excel Rijen met cel waarde verwijderen

Status
Niet open voor verdere reacties.

Growie

Nieuwe gebruiker
Lid geworden
23 aug 2014
Berichten
4
Hallo,

Ik wil graag een hele rij verwijderen als in de cel waarde 1 staat. Ik heb een niet veel kennis van vba maar heb al wel het een en ander opgedaan uit verschillende forums. Ik heb al wel een stukje code om dit te doen maar er zit een fout in. Omdat er meer cellen achter elkaar staan met de zelfde waar gaat het fout. Als er een rij wordt verwijderd schuiven de rijen op maar vba schuift ook nog een rij op. Dit moet ik op een af andere manier zien op te lossen. Wie kan er helpen!!!!!

de code is.

Sub DelRijen()

totalrows = Sheets("Blad1").UsedRange.Rows.Count

For Row = 1 To totalrows
If Cells(Row, 1).Value = 1 Then
Rows(Row).Delete
End If
Next Row

End Sub

Mvg.
 
Dan moet je de waarde van de variabele row met 1 verminderen na het verwijderen van een regel.
De variabele totalrows is niet nodig.

Code:
Sub DelRijen()

    For Row = 1 To Sheets("Blad1").UsedRange.Rows.Count
        If Cells(Row, 1).Value = 1 Then
            Rows(Row).Delete
            Row = Row - 1
        End If
    Next Row

End Sub

Let er ook op dat je het aantal gebruikte regels ophaalt van Blad1 en de verwijder actie uitvoert op het actieve blad. Dat kan hetzelfde blad zijn maar ook een andere.
 
Laatst bewerkt:
Edmoor,


Allereerst bedankt voor uw reactie.

De code werkt prima zo als ik het nu zie. U had het er over dat ik het aantal gebruikte regels moet ophalen. Hoe moet ik dat doen? Ik voer de actie uit in het actieve blad. Ik ben in de veronderstelling geweest dat excel zelf het aantal gebruikte regels ophaalt.

Zo u mij kunnen vertellen hoe ik de aantal gebruikte regels moet ophalen.

Alvast bedankt

mvg
 
Dat doe je al. Dat aantal regels wordt opgehaald dit stukje code:
Sheets("Blad1").UsedRange.Rows.Count
 
Ik had een test programma gemaakt en daar heb ik de cellen een waarde van 1 gegeven. In het werkelijke document waar ik het is wil voegen is de waarde nul. Ik had gedacht waarde 1 in 0 veranderen en het is goed. Helaas niet het geval. Als je naar waarde 0 gaat kijken dan ziet hij lege cellen ook als 0 en blijft dat in een constante loop zitten. is er een oplossing voor en zo ja welke.
Code:
Sub DelRijen()

    For Row = 1 To Sheets("Blad1").UsedRange.Rows.Count
        If Cells(Row, 1).Value = 1 Then
            Rows(Row).Delete
            Row = Row - 1
        End If
    Next Row

End Sub
 
Zo zie je maar weer het belang van een goed voorbeeld. Wijzig de 1 niet in 0 maar in "0".

Code:
Sub DelRijen()

    For Row = 1 To Sheets("Blad1").UsedRange.Rows.Count
        If Cells(Row, 1).Value = "0" Then
            Rows(Row).Delete
            Row = Row - 1
        End If
    Next Row

End Sub
 
Laatst bewerkt:
Meestal werkt het beter als je rijen wil verwijderen om dit vanaf de laatste regel te doen. Dan kan de 0 gewoon 0 blijven.
Code:
For Row = Sheets ("blad1").UsedRange.Rows.Count to 1 Step - 1
 
Het werkt nu helemaal goed. Allen bedankt voor de reacties.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan