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

niet-lege regels verwijderen

Status
Niet open voor verdere reacties.

gGerretje

Gebruiker
Lid geworden
12 mrt 2008
Berichten
439
Hallo helpers,

Ik heb een bestand met een werkblad 'codes' waarop gegevens worden weggeschreven.
Dat kan per kwartaal gaan tot ruim 6000 regels en dan wordt dit blad gekopieerd naar een nieuw bestand en als backup opgeslagen.
Dat lukt allemaal wel.

Maar vervolgens moeten de gegevens van dit blad gewist worden.
Daarvoor moeten regel 5 tot en met de laatste regel verwijderd worden (of leeggemaakt)

Met mijn code krijg nu wel een vast aantal regels geselecteerd en verwijderd, maar het lukt me niet om van regel 5 tot en met de laatste gevulde regel te selecteren.
Daarbij vind ik het ook raar dat mijn variabele 'totalrows' de waarde 57 krijgt en niet 56 of eigenlijk nog minder in verband met die paar lege regels bovenaan).

Code:
Sub NietLegeRegelsVerwijderen()
    Dim totalrows As Integer
    Sheets("codes").Select
    totalrows = ActiveSheet.UsedRange.Rows.Count
    
    Rows("5:8").Select
    'Selection.Delete
End Sub

In ieder geval is 57 als uitkomst prima, want daarmee worden de gegevens gewist.

Het is waarschijnlijk iets simpels maar ik krijg het niet voor elkaar.

Zou iemand het laatste zetje willen geven?

Alvast bedankt voor jullie hulp
Ger

Bekijk bijlage Testbestand.xls
 
Hallo Sylvester,

Dat blijkt inderdaad ook te werken, maar de code die ik al had, begrijp ik.
Wat jij nu voorstelt heb ik nooit eerder gebruikt.
Het werkt inderdaad voor wat betreft het leegmaken van de regels, maar het wist tevens de opmaak van de betreffende regels.
En ja, het ook wil toch ook wat?

Ik had gehoopt op een 'mooiere' oplossing.
Maar natuurlijk wel bedankt voor je voorstel.

Met vriendelijke groet,
Ger
 
Code:
Sub NietLegeRegelsVerwijderen()
    Dim totalrows As Integer
    Sheets("codes").Select
    Dim LastRow As Integer
    LastRow = Range("C65536").End(xlUp).Row
    Range("C5:I" & LastRow) = ClearContents
End Sub

Probeer het eens met deze code
 
Volgens mij is dit voldoende.
Code:
Sub NietLegeRegelsVerwijderen()
Sheets("codes").Rows("5:" & Rows.Count).ClearContents
End Sub
 
@ popipipo
Volgens mij ;)
Code:
Sub NietLegeRegelsVerwijderen()
 Dim LastRow As Integer
 LastRow = Range("C65536").End(xlUp).Row
 Sheets("codes").Range("C5:I" & LastRow).ClearContents
End Sub
 
Het komt allemaal op het zelfde neer; de laatste regel bepalen dmv:
LastRow = Range("C65536").End(xlUp).Row
Als NIET-VBA specialist vond ik het al mooi genoeg.
 
Jongens, jongens toch (ik ga er maar even voor het gemak van uit dat het jongens zijn die reageerden).

Ik krijg zo achter elkaar meer antwoorden dan ik zo snel kan uitproberen.
Maar inderdaad Willem. Jouw oplossing #4 werkt prima.
Die van Philiep (#5) doet het ook met wat kortere code.
De toevoeging van Philiep (#6) werkt bij mij niet. Als ik hem daarna stap voor stap uitvoer (met F8) werkt die ook.

En ja, als je als niet-VBA-specialist zo snel zo'n oplossing kunt bedenken, neem ik daar mijn petje voor af.

Allen bedankt voor jullie hulp.
Het is mooi geworden.

Met vriendelijke groet,
Ger
 
Laatst bewerkt:
In jouw voorbeeld is het een aaneengesloten bereik en dan is dit logischer.

Code:
Sub VenA()
  Blad3.Cells(5, 3).CurrentRegion.ClearContents
End Sub
 
Laatst bewerkt:
Waarom roep je de code in een aparte module aan via een Commandbutton?; die kan net zo goed direct in de Commandbutton_Click event.
 
Hallo,

@ V&A: ook een mooie korte. Ik ga hem in ieder geval in mijn aantekeningen zetten omdat je dat blad weer net even anders selecteert.
@ Harry: Je hebt volkomen gelijk. Normaal (ook nu) zet ik dat soort dingen in een aparte module om het gemakkelijk te kunnen terugvinden en sneller te kunnen wisselen als ik een verbetering heb gemaakt. In dit geval wordt die regel maar op één plaats gebruikt en is het handiger om hem onder de click te zetten.

Beiden bedankt voor jullie aanvullingen,

Met vriendelijke groet,
Ger
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan