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

excel heeel langzaam

Status
Niet open voor verdere reacties.

diepenbos

Nieuwe gebruiker
Lid geworden
18 mrt 2005
Berichten
2
hallo,

Ik heb het volgende probleem.
Als ik via een macro een grote hoeveelheid cellen wil schoonmaken (clearcontents) dan duurt dat soms 1 seconde en soms 12. De berekening staat op handmatig. Als ik op f9 druk en mijn makro laat lopen duurt het 12 seconden. Als ik de macro nog een keer laat lopen duurt het 1 seconde. Telkens als ik op f9 gedrukt heb duurt het dus veel langer.
Mijn makro ziet er zo uit:

Sub WISSEN()
ActiveSheet.Cells(1, 1) = Now()
Application.ScreenUpdating = False
ActiveSheet.DisplayPageBreaks = False
Application.Calculation = xlCalculationManual
ActiveSheet.Range("A3:e5000,m3:q5000,x3:ab5000,aj3:an5000").ClearContents
Application.ScreenUpdating = True
ActiveSheet.DisplayPageBreaks = True
ActiveSheet.Cells(1, 2) = Now()
End Sub


In cellen f2-i5000 r2-u5000 ac2-af5000 ao2-ar5000
staan formules die verwijzen naar de 4 kolommen links daarvan.
Waarom gaat clearcontents de ene keer snel en na F9 langzaam?
wat doet excel op de achtergrond?

ik kan de sheet eventueel mailen...
groeten
frank
 
Hey,

Mischien lukt dit

sub bla bla bl()

screenupdate = False

jou macro code

screenupdate = True
end sub

dus dan wordt het dit:

Sub WISSEN()

screenupdate = False

ActiveSheet.Cells(1, 1) = Now()
Application.ScreenUpdating = False
ActiveSheet.DisplayPageBreaks = False
Application.Calculation = xlCalculationManual
ActiveSheet.Range("A3:e5000,m3:q5000,x3:ab5000,aj3:an5000").ClearContents
Application.ScreenUpdating = True
ActiveSheet.DisplayPageBreaks = True
ActiveSheet.Cells(1, 2) = Now()

screenupdate = True
End Sub


dit zou kunnen helpen zoniet heeft mischien 1 van de ander heren een betere oplossing.


:thumb:
 
Frank,

Probeer onderstaande codes eens.
Ik denk dat het zeer flitsend gaat.
Zo niet dan is er wat anders aan de hand.
Succes.

Zet deze code in een normale module

Sub WISSEN()
ActiveSheet.Cells(1, 1) = Now()
ActiveSheet.Range("A3:e5000,m3:q5000,x3:ab5000,aj3:an5000").ClearContents
ActiveSheet.Cells(1, 2) = Now()
End Sub

Zet deze code in de "ThisWorkbook" module

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub

Private Sub Workbook_Open()
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub
 
bedankt!

bedankt voor de tips ik ga ze zeker proberen.
Ik ben er achter gekomen dat 20000 de =sum() formule geruiken de boel enorm vertraagd. Blijkbaar is dit ongevoelig voor de handmatige calculatie. Toen ik de sum formules weghaald had ging ie als een speer.
frank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan