Select optimaliseren

Status
Niet open voor verdere reacties.

willema

Gebruiker
Lid geworden
26 aug 2005
Berichten
308
In mijn speurtocht om mijn code te optimaliseren stoot ik nu op het volgende:

Dit gaat goed:
Code:
Sheets("temp").Select
ActiveSheet.Range(Cells(1, 9), Cells(LaatsteRij, LaatsteKolomBladNa)).Copy
maar...
Code:
Sheets("temp").Range(Cells(1, 9), Cells(LaatsteRij, LaatsteKolomBladNa)).Copy
... geeft een foutmelding.


Heb van alles geprobeerd zoals:
Code:
Worksheets("temp").Range(Cells(1, 9), Cells(LaatsteRij, LaatsteKolomBladNa)).Copy
[COLOR="#008000"]   'wat is trouwens het verschil tussen Worksheets(index) en Sheets(index)?[/COLOR]
ActiveWorkbook.Worksheets("temp").Range(Cells(1, 9), Cells(LaatsteRij, LaatsteKolomBladNa)).Copy
Application.ActiveWorkbook.Worksheets("temp").Range(Cells(1, 9), Cells(LaatsteRij, LaatsteKolomBladNa)).Copy
Worksheets("temp").Cells(1, 9).Copy

maar allemaal resulteren ze in een foutmelding.
Wat loopt hier fout ?
 
test eerst:

Code:
msgbox Sheets("temp").Range("A9").resize(laatsterij-8, LaatsteKolomBladNa).address

Code:
Sheets("temp").Range("A9").resize(laatsterij-8, LaatsteKolomBladNa).Copy
 
Laatst bewerkt:
Dag snb,

de eerste code (MsgBox) geeft Fout 438 tijdens uitvoering: Deze eigenschap of methode wordt niet ondersteund door dit object.
De tweede code werkt, weliswaar met een ander bereik dan wat ik nodig heb, maar dat komt wel goed (Cells(1,9) = Cells(I1) ipv Cells(A9)).
Ik zoek ook op wat Resize doet en dan is er...

Alweer een Select opgeruimd, waarvoor dank.
 
werk bij voorkeur met de ingebouwde dynamische gebieden :currentregion en de tabel in Excel.
Zijn al die 'laatsteregel', 'laatstekolom' variabelen overbodig.
 
Laatst bewerkt:
Dankjewel snb,

ben nog altijd op zoek naar een goed handboek (in het Nederlands) om mijn kennis wat te structureren.
Nu is die zeer fragmentarisch: wat afgekeken van de macrorecorder, wat tips vanop dit en andere fora (en de VBA-handleidingen), wat websites (oa. die van jou, Pearson, Ron De Bruin, ...).
En dat is duidelijk te zien aan mijn code. Het werkt, maar is vaak een rommeltje.
 
Je kunt toch beginnen met 'VBA voor dummies' ? (John Walkenbach).
Als je de struktuur van de taal te pakken hebt gaat alles veel sneller.
 
Ik ben ondertussen aan bladzijde 100 (van de 640 blz) in Het Complete Boek Excel Vba Voor Professionals van Wim de Groot.
Echt een aanrader. Je niet laten afschrikken door "Voor Professionals" in de titel. Dit is echt een boek voor iemand die zoals mezelf wat VBA-code heeft geleerd via de macrorecorder en fora zoals deze, maar een structuur mist.
ISBN 9789059408074
 
Prima,

Ik vrees dat de aanduiding 'compleet' iets te pretentieus is (en professioneel misschien ook).

Vergelijk de voorbeeldcode op zijn website maar eens met:

Code:
Sub M_snb()
    y = [max(iferror(match(today()+row(1:7)-1,Blad3!A$1:A$1000,0),0))]
    If y = 0 Then sn = Cells(Rows.Count, 1).End(xlUp).Select
    If y > 0 Then Cells(1).Offset(y - 1).Select
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan