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

Gedeelte van een rij verwijderen bij celwaarde 0!!!

  • Onderwerp starter Onderwerp starter tThye
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

tThye

Gebruiker
Lid geworden
16 dec 2010
Berichten
44
Beste mensen,

Ik heb de volgende werkende code in Excel staan:

Code:
    Application.ScreenUpdating = False
    For rij = Range("G65000").End(xlUp).Row To 6 Step -1
    If Cells(rij, 5) = 0 Then Rows(rij).EntireRow.Delete
    Next
End Sub

Ik vroeg mij af of deze code aangepast kan worden zodat niet de gehele rij (EntireRow), maar een bepaald gedeelte van de rij (in mijn geval van B tot R) wordt verwijderd. Kan ik EntireRow gewoon vervangen door Range("B:R") of gaat dit anders?

Groeten,

Mark
 
Je kunt niet een gedeelte van een rij VERWIJDEREN.
Je kunt wel een gedeelte van een rij VERBERGEN.
En: de screenupdating moet je na afloop van het verwijderen op TRUE zetten !
 
Zo zou je toch een gedeelte van een rij kunnen verwijderen @zapatr?
Code:
If Cells(rij, 5) = 0 Then Range("A" & rij & ":B" & rij).Delete Shift:=xlUp
 
HSV,
dat is een misverstand tussen ons wat betreft de definitie van 'verwijderen' denk ik.
In Excel verwijder je eigenlijk NOOIT rijen (en ook geen kolommen).
Excel behoudt ALTIJD het aantal rijen dat in het programma aanwezig is (t/m Excel 2003 zijn er dat 65536 en in Excel 2007/2010 nog veel meer), welke verwijderopdracht je ten aanzien van de rijen ook onderneemt. Het zijn de gegevens die in de cellen staan, die opschuiven; dat is aan jouw opdracht ook duidelijk te zien. En waarschijnlijk is jouw opdracht ook zo ongeveer datgene wat de vragensteller bedoelt.
 
zapatr,

Geen misverstand, volkomen mee eens.
 
zapatr,

Geen misverstand, volkomen mee eens.

Bedankt heren, wat HSV aangeeft wil ik inderdaad, maar hoe moet mijn code er nu uit zien?

Zoiets?

Code:
    Application.ScreenUpdating = False
    For rij = Range("G65000").End(xlUp).Row To 6 Step -1
If Cells(rij, 5) = 0 Then Range("B" & rij & ":R" & rij).Delete Shift:=xlUp
    Next
Application.ScreenUpdating = True
End Sub
 
Je code ziet er goed uit.

Als je 'variabelen declareren' hebt uitgevinkt, en de code werkt naar wens?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan