Geschwindigkeitsproblem beim Formelberechnen

Bild

Betrifft: Geschwindigkeitsproblem beim Formelberechnen
von: Sven
Geschrieben am: 13.10.2003 19:19:47

Hallo zusammen!

Ich habe mein Programm jetzt fertig gestellt. Im Prinzip ist es eine Datenbank in der Namen gespeichert werden. Hinzu kommen in 2 Spalten jeweils eine recht komplizierte Matrix-Formel (zusammengesetzt aus WENN;ODER;UND;SVERWEIS - Funktionen). Die Formeln funktionieren auch einwandfrei, jedoch habe ich jetzt ein ziemlich extremes Geschwindigkeitsproblem:
Bei JEDER Zelleneingabe rechnet der Rechner ~ 30 sec. (2,4 GHz P 4) bzw. fast ne min. (Heimrechner -> 1,5er Athlon). Das Programm ist ~ 9,5 MB groß (ohne eingetragene Daten).
Ich habe den Anschein, dass er jedes Tabellenblatt berechnet, auch wenn man sich im 1. befindet. Wenn das stimmt würde er mit jedem Eintrag ~400 000 Zellen berechnen (wobei die meißten ja ohne Formeln einfach leer sind!) "Formelzellen"
wären "nur" ~ 40 000 in der ganzen arbeismappe.

Ich habe folgendes schon versucht:
Jedes einzelne Tabellenblatt in eigener arbeitsmappe -> gleiche geschwindigkeit.

Bin um tipps sehr dankbar, auf anrfage kann ich euch Auszüge zeigen.
Gruß
Sven

Bild


Betrifft: Stell um auf manuelle Berechnung - und...
von: Boris
Geschrieben am: 13.10.2003 19:31:05

Hi Sven,

...berechne bei Bedarf mit F9 neu.

Grüße Boris


Bild


Betrifft: AW: Stell um auf manuelle Berechnung - und...
von: Sven
Geschrieben am: 13.10.2003 19:46:47

das problem ist: die geschwindigkeit bleibt ja lahm und das prog ist a) nicht für mich, sondern es müssen auch andere bedienen (und denen kann ich nicht erklären, WIESO das jetzt so lange braucht, bei dem tollen neuen arbeits-PC ^^) und b) muss man pro namen (wenn er neu angelegt wird) 5 felder ausfüllen....das ist definitiv zu langsam wies jetzt läuft....


Bild


Betrifft: Mit umfangreichen Arrayformeln in großen Tabellen.
von: Boris
Geschrieben am: 13.10.2003 22:54:17

Hi Sven,

...wirst du IMMER Performanceprobleme bekommen.
Ich arbeite ja nun auch gerne mit Formeln - wenn sie aber sehr zahl- und umfangreich vorhanden sind, dann stell ich - wie bereits gesagt - die Berechnung auf manuell und berechne nur bei Bedarf mit F9 neu.
Dann kann ich soviel eingeben wie ich will - die Arbeit wird dadurch nicht behindert.
Und die User müssen halt geimpft werden, dass sie zum Ende der Eingaben mit F9 die Berechnung starten müssen.

Allgemein: Oft ziehe ich auch statt Arrayformeln die Lösung mit Hilfsspalte vor. Das beschleunigt das Ganze doch oft erheblich.
Oder ich weiche - wenn es definitiv zu langsam ist - auf VBA aus.
Konkreter kann ich ohne Kenntnis deiner verwendeten Formeln aber nicht werden.

Grüße Boris


Bild


Betrifft: AW: Mit umfangreichen Arrayformeln in großen Tabellen.
von: Sven Kopp
Geschrieben am: 13.10.2003 23:54:33

danke dir boris, habe ja jetzt hilfe gefunden ;)
das problem war, das man bei einer eingabe die ergebnise ja braucht!


Bild


Betrifft: AW: Geschwindigkeitsproblem beim Formelberechnen
von: Reinhard
Geschrieben am: 13.10.2003 19:58:28

Hi Sven,
in DieseArbeitsmappe:

Private Sub Workbook_Open()
    Application.Calculation = xlCalculationManual
End Sub


In Tabelle1 , Tabelee2, Tabelle3,....... jeweils

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.SendKeys "{F9}"
End Sub

Gruß
Reinhard


Bild


Betrifft: AW: Geschwindigkeitsproblem beim Formelberechnen
von: Sven
Geschrieben am: 13.10.2003 20:23:47

Hallo Reinhard!
Tut mir leid aber mit deinem Code kann ich gar nichts anfangen....ich kenn mich mit den Excel-formeln ganz gut aus, aber sowas habsch in excel noch nicht gesehn...wo kommt das hin/was bewirk das?
Ich hoffe du kannst mir das noch ein klein wenig erläutern! ;)
Danke!
Sven


Bild


Betrifft: AW: Geschwindigkeitsproblem beim Formelberechnen
von: Reinhard
Geschrieben am: 13.10.2003 21:05:18

Hi Sven,
mit Alt-F11 in den Editor wechseln,
dann links doppelt auf DieseArbeitsmappe klicken und rechts


Private Sub Workbook_Open()
    Application.Calculation = xlCalculationManual
End Sub


reinkopieren, dann lnks alle gewünschten Tabellen (Tabelle1,tabelle2) auch doppelt anklicken und eingeben:


Private Sub Worksheet_Change(ByVal Target As Range)
    Application.SendKeys "{F9}"
End Sub


Dann Editor schließen.
Das Makro in DieseArbeitsmappe schaltet die automatische Berechnung für die ganze Arbeitsmappe aus.
Die Makros in den einzelenen Tabellen senden an Excel F9, es wird also berechnet, aber nur diese eine Tabelle und nur wenn sich da was geändert hat, also bei jeder Zelleneingabe.
Gruß
Reinhard


Bild


Betrifft: Und mal wieder vielen dank!
von: Sven
Geschrieben am: 13.10.2003 23:53:17

Super!
Hatt echt viel gebracht, man merkt jetzt fast gar keine berechnungszeit mehr!
Find ich echt klasse, wie ihr hier alle einen im Forum unterstützt, ich hoffe ich kann auch mal mit einer Lösung beitragen! ;) Ich werd auf jeden Fall immer mitlesen!
Bis dann,
Gruß
Sven


Bild


Betrifft: Danke für die Rückmeldung, o.w.T.
von: Reinhard
Geschrieben am: 14.10.2003 14:20:28

.


 Bild

Beiträge aus den Excel-Beispielen zum Thema " schwieriges Zahlenformat"