Cells(Rows.Count, "A").End(xlUp).Row begint weer bij 1?

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

Jors

Gebruiker
Lid geworden
1 okt 2006
Berichten
142
Hallo,

Ik heb een VBA macro in excel gemaakt die een heleboel rijen uit andere excel sheets importeerd. Elke keer begint hij bij de laatste lege rij en hiervoor gebruik ik Cells(Rows.Count, "A").End(xlUp).Row

Nou merk ik dat als ik meer dan 65.636 rijen heb, het resultaat van bovenstaade code weer "1" wordt. Hij begint dus te importeren op de eerste rij ipv onderaan.

Dit zou ik begrijpen als ik Excel 2003 gebruikte, maar ik gebruik toch echt versie 2010.

Dan moet ik tot 1.048.576 rijen kunnen toch?

De waarde wordt overigens opgeslagen in een variabele met de dimensie "LONG" ipv "INTEGER" omdat een integer niet verder ging dan 32k (en een beetje). Ook dat past toch niet bij mijn excel versie?

Dank voor de hulp.
 
Gebruik je toevallig een document met de .xls extensie? Dan zal Office 2010 deze in compatibiliteitsmodus draaien en qua regels niet verder gaan dan het maximum van Office 2003.
 
De bestanden waaruit de rijen worden geïmporteerd zijn *.xls. Ik begrijp dus dat de problemen geeft?
 
Sla die .xls documenten eens op als .xlsx en probeer het dan nog eens.
 
Ik zal er zo eens een paar proberen omdat ik nieuwsgierig ben of dit inderdaad werkt.

Het probleem is echter dat ik honderden xls bestanden moet importeren die automatisch gegenereerd worden door een programma, vandaar de macro. Ze allemaal handmatig als .xlsx opslaan is iets te omslachtig, dan kan ik beter de macro afbreken boven de 65636 rijen en dan de sheet kopiëren en legen (zo doe ik het nu).
 
Als het zoveel .xls documenten zijn is het ook geen probleem om een macro te schrijven die ze allemaal ineens naar .xlsx converteerd.
 
Het opslaan in .xlsx verhelpt inderdaad het probleem.

Is het eenvoudig om een macro te schrijven die xls omzet in xlsx?
 
Laatst bewerkt:
Als je alle .xls documenten bij elkaar in 1 map kan zetten wil ik wel een macro voor je maken die ze omzet naar .xlsx. Ik bedoel niet dat ik die documenten nodig heb, maar dat ze eenvoudig te vinden zijn. Zijn het tevens allemaal documenten zonder macro's? Of zijn er ook met macro's?
 
Ze staan allemaal in één map en hebben allemaal de extensie .xls
 
Een .xls document kan met of zonder macro's zijn. Met macro moeten ze als .xlsm worden opgeslagen, vandaar de vraag.
 
Prima. Zal ik er vanavond een macro voor maken en hem hier plaatsen.
 
Bij deze de conversie:
Bekijk bijlage Conversie-xls2xlsx.xlsm

De werking wijst zich vanzelf. Verder zit er nergens foutcontrole op omdat ik verwacht dat je weet waar je mee bezig bent en wel de juiste gegevens in zal voeren. Zorg ervoor dat de uitvoer naar een lege map gaat. Met de bron documenten gebeurt niets, deze worden in "Alleen lezen" mode geopend en blijven dus volledig intact.

Als het bron document een VBA project bevat wordt deze opgeslagen als Document met macro's (.xlsm) en anders als een standaard .xlsx document. E.e.a. is "quick and dirty" in elkaar gestoken maar werkt goed en lijkt me voldoende voor het doel dat je wilt bereiken.

Mocht het vaker nodig zijn om deze actie uit te voeren dat is het zaak om eens te kijken of de leverende kant de documenten niet als documenten voor Office 2007 en hoger kan leveren. De conversie zelf is simpel, dus die zou je ook in je eigen code op kunnen nemen.
De code in dit conversie document kun je zelf inzien. De eigenlijke conversie wordt gedaan in de code achter de knop "Start omzetten".


Bekend probleempje:
Bij de eerste keer openen van een folder vanuit het userform kan het soms enkele seconden duren voordat deze verschijnt.
Ik heb nog niet gekeken naar de oorzaak ervan.
 
Laatst bewerkt:
Dank voor je hulp edmoor. Ik ga je script nu proberen, heb er van het weekend geen tijd voor gehad.
 
Geen probleem. Ik hoor graag of je er zo mee kunt werken :)
 
Het werkt prima! Nogmaals bedankt edmoor, hier heb ik zeker wat aan.

Ik ben het echter wel met je eens dat het handiger zou zijn als de bestanden die ik importeer direct in xlsx/xlsm zouden worden opgeslagen. Dus hier ga ik ook werk van maken.
 
Ok dan,
En graag gedaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan