Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Excel kein Speicher !

Forumthread: Excel kein Speicher !

Excel kein Speicher !
10.02.2025 15:32:25
norbert
Guten Tag allerseits,
ich habe nur eine Datei auf.
Die Datei hat 733KB, plötzlich kommt: nicht genügend Speicher.
Mein Laptop hat 32 GB ! Office 32 Bit
Und es stürzte dann Excel ab,
WARUM ?

mfg norbert
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum?
10.02.2025 15:47:02
RPP63
Moin!
Die Frage nach dem warum lässt sich sehr einfach beantworten:
Es liegt an Deiner Datei …
"Etwas" genauer:
Formeln und Formatierungen (auch bedingte) grätschen dazwischen.
Wird VBA eingesetzt?
Kannst Du die Datei hier (anonymisiert) hochladen?

Gruß Ralf
AW: Excel kein Speicher !
10.02.2025 16:08:08
Onur
Wahrscheinlich hast du eine Endlosschleife in einem deiner Makros eingebaut.
Anzeige
AW: Excel kein Speicher !
10.02.2025 16:12:15
Onur
Wahrscheinlich in einem Change-Event.
Wie kann man die Endlosschleife finden
10.02.2025 16:25:08
norbert
Hallo zusammen,
wie kann ich die Endlosschleife finden ?


mfg norbert
AW: Wie kann man die Endlosschleife finden
10.02.2025 16:44:28
Yal
Hallo Norbert,

vielleicht wird Onur schneller sein...

Wenn Du Ereignisprozedure einsetzst, kann es vorkommen, dass Du damit eine Aktion anstosst, die selbst eine Ereignisprozedure auslöst. Diese Neuauslösen sieht in VBA-Editor, als ob die Procedure wieder am Anfang startet, aber in Realität eine ganze neue Verarbeitung startet. Die bisherige Verarbeitung wird auf dem Staple gelegt (ein spezielle Speicher-Konstrukt im CPU) und die neue dann drauf, und wieder die neue, und wieder die neue, usw. bis Stapel voll ist und dann Excel abstürzt.

Beispiel:
Private Sub Worksheet_Change(ByVal Target As Range)

Range("A1") = 1 'hier wird in der Zelle A1 geschrieben, was ein Worksheet_Change auslöst
End Sub


Lösung: Ereignis ("Events") nicht erlauben:
Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False 'Events blockieren
Range("A1") = 1
Application.EnableEvents = True 'nicht vergessen, Events wieder zu erlauben
End Sub


VG
Yal
Anzeige
Müßte geklärt sein -)
10.02.2025 17:11:37
norbert
Hallo zusammen,
ich habe das von Yal durchgeführt.
Habe hier:
Public Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False

am schluß eingesetzt.
Application.EnableEvents = True
bis jetzt alles i.o., ich hoffe das es das war.
Zusätzlich hatte ich diese Datei: DatePicker.xll
im Verzeichnis: C:\Users\Norbert\AppData\Roaming\Microsoft\Excel\XLSTART

DANKE an ALLE !

gruß norbert


Anzeige
AW: Müßte geklärt sein -)
10.02.2025 17:16:56
Yal
Hallo Norbert,

ich habe den Beispiel mit Worksheet_Change, könnte aber auch mit
Worksheet_SelectionChange und darin der Auswahl einer andere Zelle,
Worksheet_Activate / Worksheet_Deactivate und Wechsel zwischen Blätter,
usw.

Anders gesagt: prüfe alle deine Event-Prozeduren.

Immer ist es zu denken: ich fange den Event ab, aber löse ich darin einen Event aus?

VG
Yal

Anzeige
Change-Event
10.02.2025 17:41:16
RPP63
Da der TE ja seine Mappe nicht zeigen mag:
Ganz so einfach ist es ja nicht mit dem stackoverflow …
"Normalerweise" wertet man in einem Change ja das Target aus.
Simpelst-Variante:
Private Sub Worksheet_Change(ByVal Target As Range)

Target = 1
End Sub

Hier kommt es nicht zu einer Endlosschleife!
Egal, was man in eine beliebige Zelle einträgt:
Der Wert wird einmalig in eine 1 geändert.
Danach folgt keine Änderung mehr, weswegen das Change auch nicht mehr getriggert wird.
Deshalb brauchen die Events auch nicht abgeschaltet zu werden.

Gruß Ralf
Anzeige
AW: Change-Event
10.02.2025 17:49:18
Onur
Hallo Ralf,

Wie kommst du denn da drauf ????
Solltest du auch mal testen....
Wenn du in den VBA-Editor gehst, siehst du, dass du auf Pause klicken kannst, da der Code läuft und läuft und läuft und läuft .....(auch wenn er keinen Stapelspeicherfehler generiert).

Gruß
Onur
Anzeige
testen?
10.02.2025 17:58:31
RPP63
Selbstverständlich habe ich das getestet, Onur!
Bei mir unter Excel 365, aber mein Hinweis galt imo schon immer.

Vielleicht noch ein wichtiger Zusatz:
Mittels F8 stept man tatsächlich endlos.
Dies passiert auch beim Setzen eines Haltepunkts und F5
Das "reine" Change ohne Haltepunkt endet hingegen augenblicklich.
Ich habe in meinem Fundus einige Dateien, wo ich bewusst auf EnableEvents verzichte.

Gruß Ralf
Anzeige
AW: testen?
10.02.2025 18:19:52
Onur
Wenn du mal ein Modul anlegst , dort x als PUBLIC deklarierst und im Change-Event das hier nimmst:
Private Sub Worksheet_Change(ByVal Target As Range)

Target = 1
x = x + 1
End Sub

siehst du im VBA-Editor im Überwachungsfenster, dass x den Wert 46 hat. Dass heisst, dass der Code 46x läuft, bevor Excel die Notbremse zieht.
Anzeige
Ich kann dies so nicht ....
10.02.2025 19:22:24
norbert
Hallo Onur,
tut mir leid, ich kann das so nicht.

Vielleicht kannst Du das mal aufzeichnen,
würde mich freuen.

gruß norbert
Höchst interessant!
10.02.2025 20:43:33
RPP63
Das kann ich so bestätigen, Onur!
Bei 42 hätte ich ein easter-egg vermutet, aber ausgerechnet 46?

Danke jedenfalls für den Tipp mit der globalen Variable nebst Überwachungsfenster!

Gruß Ralf
Anzeige
AW: Ich kann dies so nicht ....
10.02.2025 19:34:40
Onur
DU bist doch gar nicht gemeint gewesen.
AW: Ich kann dies so nicht ....
10.02.2025 19:38:29
Onur
Hi "norbert",

Wenn du schon die Datei nicht posten willst, dann poste doch mal wenigstens alle Event-Makros - sonst kann dir auch Niemand helfen.

Gruß
Onur
AW: Die kannst du...
10.02.2025 16:43:58
norbert
Hallo Case,
die Datei benutzen mehrere Kollegen, abwechselnd.
Ich weiß garnicht im welchen Modul sich die Endlosschleife befindet.

gruß norbert
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18