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

Verberg macro stop "ergens"

Status
Niet open voor verdere reacties.

robinvdveeken

Gebruiker
Lid geworden
7 sep 2010
Berichten
84
Geachte veelwetenden,

Alweer een probleem, en een waarvan ik zelf denk dat de oplossing niet zo voor de hand liggend is.
Maar goed, dat heb ik al eens vaker gedacht :rolleyes:

Ik heb in excel een flinke dynamische invullijst gemaakt. Werkt top! Nu is het zo dat voor de printversie het er wat mooier uit moet zien. Dus dacht ik, rijen die je niet nodig hebt maak je rood terwijl je de lijst aan het invullen bent.
Als je klaar bent druk je op de knop en deze rijen worden verborgen.

Werkt prima, en inmiddels werken er al flink wat collega's mee.

Ik stuit op het volgende:
Ondanks dat ik een For Each statement gebruik, doet hij het niet voor elke cel.
Om dit te controleren laat ik de macro "*" toevoegen in de cellen welke deze doorlopen heeft.
Kan iemand mij uitleggen waarom? En eventueel hoe ik dit op zou kunnen lossen?

Zie voorbeeld bestand.

Alvast bedankt.

Groeten,
Robin
 

Bijlagen

  • Voorbeeld 23.xls
    85,5 KB · Weergaven: 18
Hallo Robin,

Wat ik zie is dat er na de laatste rij waarin in kolom B nog tekst staat de rijen niet verborgen worden. Dit komt overeen met wat je in de regel
Code:
Set rRange = Worksheets("Blad1").Range("A1", Worksheets("Blad1").Range("B65536").End(xlUp))
vast stelt.
Je hebt twee wegen om dit op te lossen:
1 - zet in de laatste rij met rode cel in kolom B een teken, eventueel een spatie.
2 - Kies niet een dynamische range, maar een vaste bijv B1:B10000
 
Wat een inzicht, bedankt!

Dit klaart de klus:

Code:
Set rRange = Worksheets("Front").Range("A1", Worksheets("Front").Range("A65536"))

Groeten,
Robin
 
Als aanvulling op Thoralf's post nog een 3e mogelijkheid:

Code:
Set rRange = Worksheets("Front").Range("A1", Worksheets("Front").Range("A" & ExecuteExcel4Macro("get.document(10)")))

met die get.document haal je de laatst (ooit) gebruikte rij op en hoef je niet onnodig door 65536 rijen te loopen (tenzij je in rij 65536 een keer wat doet ;) )
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan