Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cellen selecteren in VBA

476 views
Skip to first unread message

willema

unread,
Nov 3, 2009, 12:50:03 PM11/3/09
to
Regel per regel probeer ik een VBA-procedure te schrijven. Na elke regel een
test.
Sommige zeer evident lijkende zaken eindigen toch met een fout.

Jan gaf me een code waarmee ik de namen van Worksheet kon weergeven in een
kolom A van een worksheet. Hiermee ging ik verder aan de slag.

For x = 3 To RijNrX
'waarbij 3 de eerste rij is met zo'n worksheetnaam en RijNrX de
laatste rij
ShNameX=Cells(x,1)
Sheets(ShNameX).Activate
MsgBox "Mijn manier om de loop even te pauzeren om te kijken wat er
nu gebeurd is."
Next x

Dit werkt,
maar wanneer ik net na de "Activate"-regel een regel toevoeg met
Range("A2").Select
dan krijg ik een foutmelding.
Nochtans is het werkblad niet beveiligd, noch is cel A2 geblokkeerd.

Waarom lukt dit niet ?

Groeten,
Marnik

jan

unread,
Nov 3, 2009, 1:06:21 PM11/3/09
to
Marnik,

Je moet denk ik ook bij de Range de naam van het bwerkblad zetten, want
vermoedelijk heb je deze code in de module van een werkblad staan en
betekent Range("A2") de cel op dat werkblad.

Sheets(ShNameX).Activate
Sheets(ShNameX).Range("A2").Select

of

With Sheets(ShNameX)
.Activate
.Range("A2").Select
End With

Jan


Wigi

unread,
Nov 3, 2009, 1:44:03 PM11/3/09
to
.Select en .Activate hoef je niet te doen in VBA-code. Haal dat eerst uti de
code en dan ben je al een stap verder.

--
<a
href="http://users.skynet.be/fa436118/wim/opdrachten.htm">http:/www.wimgielis.be</a>: Excel (VBA code + example files), sports and music.

Maurrieske

unread,
Nov 3, 2009, 2:34:49 PM11/3/09
to
Misschien dat op het geactiveerde blad op de genoemde cellen geen bladnamen
staan?

Voor de goede orde. Je kunt de msgbox eruit halen. Je kunt stap voor stap
door de code met F8.
Je kunt de macro starten middels combi ALT+F8 en vervolgens kiezen om de
code stap voor stap uit te voeren (elke keer op F8 is een regel in de code
verder).

Volgens mij gaat de code niet fout bij het selecteren van de cel A2, maar in
de tweede activeren van een tabblad.
Je moet begrijpen dat je in een lus zit met de for next loop.
Deze begint bij de eerst x met de waarde 3. Vervolgens zal de loop doorlopen
tot aan de waarde van RijNrX.
In de eerste loop wordt echter een blad geactiveerd. Dit is het blad met de
naam die in de cell A3 staat op het blad met de bladnamen.
Waarschijnlijk staat op het blad dat nu geactiveerd is op cel A4 geen
geldige bladnaam. Vervolgens ga je in de code het blad activeren, echter het
blad bestaat niet. Immers de bladnaam is de inhoud van A4 op het actieve
blad (dat in de eerste loop geactiveerd is).

Maurrieske


"willema" <wil...@discussions.microsoft.com> schreef in bericht
news:B35D9931-BFB3-498D...@microsoft.com...

willema

unread,
Nov 4, 2009, 3:46:02 AM11/4/09
to
Nu ontdekt dat mijn code op de verkeerde plaats stond: nog in de
Worksheet-module ipv in een algemene module.
0 new messages