Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1440to1444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel hängt sich bei Abarbeitung VB Skript auf

Excel hängt sich bei Abarbeitung VB Skript auf
19.08.2015 11:11:24
Lars
Hallo zusmmen,
bisher habe ich dieses Forum genutzt um aus den Fragen anderer eine Lösung für mein Problem zu finden. Dafür schon einmal vielen Dank, denn es hat bisher immer geklappt.
Nun aber finde ich keine Lösung und möchte aktiv um Hilfe Fragen.
Ich habe eine Excel Datei die über VB mit einer Loop Schleife 20 Files nacheinander abarbeitet.
Da alle Files zusammen aktuell ca. 750.000 Zeilen produzieren, habe ich mich im VB Teil dazu entschlossen, nach dem Einlesen, Berechnen, statische Ergebniss in anderes Tabellenblatt kopieren, alle Spuren zu beseitigen, bevor ich die folgende Datei mit der Loop Schleife aufrufe und verarbeite.
Beim Abarbeiten kopiere ich die Formeln aus einer Zelle die ich nicht lösche an die Stelle wo ich sie bei jeder neuen Datei benötige und erweitere den Bereich wo diese Formel benötigt wird über den notwendigen Bereich. Dieser Bereich wird in einer Zelle per Formel ermittelt. Diesen Zellinhalt nehme ich VB auf und deklariere mir damit eine Range Variable. Diesen Prozess wiederhole ich mit der Variable ca. 15x bis alle berechneten Werte in einer kleinen statischen Ergebnistabelle stehen.
Dann lösche ich alles bis auf meine Formelzellen und hole mir nächste Datei.
Eigentlich läuft alles perfekt, aber Excel hängt sich beim abarbeiten immer wieder auf (keine Rückmeldung), nie an der selben Stelle, oder bei der selben Datei. Wenn ich ihn mehrere Stunden in Ruhe lasse, läuft er irgendwann weiter...
Woran kann es liegen? Code erwünscht?
Ich habe Do Events am Ende vor Loop eingebaut in der Hoffnung das es daran liegt. Leider nicht.
In der Hoffnung auf Hilfe, Lars

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel hängt sich bei Abarbeitung VB Skript
19.08.2015 11:29:22
Daniel
Hi
Excel ist einfach so beschäftigt, dass es vergisst sich beim Betriebssystem zurückzumelden.
Ist ein Bug.
bei einer Laufzeit von mehreren Stunden sollte man sich schon gedanken über eine Codeoptimierung machen, wenn du nicht allzu komplizierte Berechungen anstellst.
Gruß Daniel

AW: Excel hängt sich bei Abarbeitung VB Skript
19.08.2015 11:43:16
Lars
Hallo Daniel,
das ist gerade das was mich so wundert. Excel benötigt viel zu lange um die Formeln aus drei Spalten auf 75.000 Zellen der drei Spalten auszudehnen. Die Formeln in den Zellen ist nichts besonderes, eine verschachtelte Zählenwenn wobei der Range Startpunkt nicht fixiert ist, so wie ein ein Countdown.
=WENN(ZÄHLENWENNS(C3:C$100000;C3;H3:H$100000;H3)=1;ZÄHLENWENNS(C:C;C3;H:H;H3);"")
=WENN(ZÄHLENWENNS(C3:C$100000;C3;H3:H$100000;H3;D3:D$100000;D3)=1;1;"")
=WENN(ZÄHLENWENNS(C3:C$100000;C3;H3:H$100000;H3)=1;1;"")
Gruß0 Lars

Anzeige
AW: Excel hängt sich bei Abarbeitung VB Skript
19.08.2015 12:13:53
Daniel
Hi
jedes ZählenWenns enthält intern eine Schleife über alle Zellen des angegebenen Bereichs.
dh jedes ZählenWenns führt 75.000x den Zellvergleich der aktuellen Zelle mit C3 aus!
wenn du jetzt dieses ZählenWenns in alle 75.000 Zellen kopierst, dann sind das 75.000^2 = 5.625.000.000 Zellvergleiche (fast 6 Mrd, selbst wenn du das mit deiner Methode halbierst sind immer noch fast 3 Mrd Zellvergleiche!)
du solltest dir überlegen, ob du nicht die Tabelle einfach nach Spalte C und H sortierst, dann kannst du mit einem einfachen Vergleich von zwei benachbarten Zellen feststellen, ob den Wert in C3 jetzt das erste mal vorkommt oder schon ein duplikat. ist. (=Wenn(C3=C2;...)
Gruß Daniel
Anzeige

112 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige