regelhoogte vergroten tot volgende pagina bereikt

Status
Niet open voor verdere reacties.

voermanm

Gebruiker
Lid geworden
4 nov 2004
Berichten
36
Geachte mensen,

Ik ben bezig met een Access project met een koppeling naar Excel. Access vult de excel sheet met gegevens en hierna wordt de layout van de Excel sheet verbeterd. Nu loop ik tegen een performance probleem aan. Ik tracht de regelhoogte van een regel net zolang te vergroten zodat het laatste stuk aan het eind van de pagina wordt afgebeeld. Ik probeer dit op de volgende manier op te lossen:

Code:
iHpBreaks = objSht.HPageBreaks.Count + 1
iVBreaks = objSht.VPageBreaks.Count + 1
totalpages = iHpBreaks * iVBreaks
Ready = 0

Do While Ready = 0
    
    hoogte = objSht.Rows(lastregel + 2).RowHeight
    objSht.Rows(lastregel + 2).RowHeight = hoogte + 12.75)
    
    iHpBreaks = objSht.HPageBreaks.Count + 1
    iVBreaks = objSht.VPageBreaks.Count + 1
    totalpages1 = iHpBreaks * iVBreaks
    
    If totalpages <> totalpages1 Then
    Ready = 1
    objSht.Rows(lastregel + 2).RowHeight = (hoogte - 12.75)
    End If
Loop

Wat er dus gebeurt is dat de regel net zolang wordt verhoogd met 12,75 totdat het aantal pagina's is verhoogd. Wat het probleem is dat de volgende code erg lang duurt:

iHpBreaks = objSht.HPageBreaks.Count + 1
iVBreaks = objSht.VPageBreaks.Count + 1
totalpages1 = iHpBreaks * iVBreaks

Ik vergroot dus steeds de regel totdat er een extra pagina benodigd is. Als dit het geval is wordt de laatste verhoging weer teruggedraaid zodat het einde van de excel sheet pas echt aan het einde van de pagina wordt getoond. Het opnemen van deze teksten in een voettekst is niet mogelijk aangezien hier ook nog variabelen uit access in komen te staan.

In totaal is dit stukje code tot 40 seconden bezig. Ik denk dat dit sneller moet kunnen en vroeg me af of jullie nog een andere methode hebben of een tip.

Alvast bedankt,

Met vriendelijke groet,

Menno
 
Laatst bewerkt:
als je je Excel object hidden houdt totdat deze helemaal klaar is dan is die sneller klaar omdat hij niet steeds het beeldscherm hoeft bij te werken.

HTH:D
 
als je je Excel object hidden houdt totdat deze helemaal klaar is dan is die sneller klaar omdat hij niet steeds het beeldscherm hoeft bij te werken.

HTH:D

Bedankt voor je reactie Guus.

objXL = new Excel.Application
objXL.Visible = false
objXL.ScreenUpdating = false

Dit had ik al geimplementeerd. Het probleem blijft hem zitten in het code waarbij gezocht wordt naar alle horizontale en verticale pagebreaks. Deze pagebreaks zijn per regel / kolom gedefineerd waardoor bij alle checks er weer een lust wordt doorlopen en alle pagebreaks worden opgezocht. Bij mij is dit dus vrij vaak,

Ik had verwacht dat hier wel een logischere oplossing voor is, maar zoals het nu lijkt zal ik de implementatie zoals hierboven beschreven. Mocht je nog meer opties hebben dan hoor ik het graag.

Groeten,

Menno
 
Maak in Excel gebruik van een databasequery (menubalk/data/externe gegevens/databasequery)
 
Maak in Excel gebruik van een databasequery (menubalk/data/externe gegevens/databasequery)

Ik maak momenteel gebruik van van de Microsoft Excel 11.0 Object Library. Ik zie niet in wat het voordeel is van een gebruik van een databasequery, en wat het te maken heeft met dit probleem van pagebreaks.

Zou u uw opmerking kunnen verhelderen?

Groeten,

Menno
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan