UserForm: Stapelverarbeitungsüberlauf
#1
Hallo,

in einer UserForm erscheint nach 250-350 Aktionen die Fehlermeldung "Stapelverarbeitungsüberlauf".

Ein deutsch-sprachige Suche war erfolglos (Überlauf oft als Interger-Überlauf)

Alle Objekte wurde mit "set [Obj] = nothing" wieder zerstört.

Hat jemand Erfahrungen mit dieser Problematik?

Danke

Mfg
Antworten Top
#2
Moin Fennek!
Ohne Code nebst Datei nur folgender Hinweis:
Meist kommt dieser Fehler, wenn ein Event in einer Dauerschleife abgearbeitet wird.
Application.EnableEvents = False (an der richtigen Stelle) hilft meist.
Dass Du die Events dann wieder einschalten musst, brauche ich Dir ja nicht zu schreiben.

Ich gehe ja davon aus, dass Du den LZF 28 meinst, den man auch brutal erzwingen kann:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Call Worksheet_Change(Target)
End Sub


Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hallo Ralf,

es ist klar, dass die Informationen minimal sind.

Es werden in Outlook (kein EnAbleEvent) viele hundert Emails verarbeitet, je nach Inhalt rufen sich Prozudure der UserForm manchmal gegenseitig auf.

Die Mails eines Ordner werden mit einem SpinButton geschaltet, also als Pseudocode

Code:
dim EML as MailIten

set EML = Folder.Items(Spinbutton1)

Die Fehlermeldung kommt bei Änderungen des Spinbutton, aber der Wert wird mehrfach gesichert.

Für die Frage ist das aber zu speziell, ich hatte gehofft Information über etwas ähnliches wie "Garage Collection" zu erhalten.

mfg
Antworten Top
#4
Hallo,

ich würde bei sowas vielleicht an eine Variable denken (Integer statt Long) oder eine Rekursion denken,
die nicht mehr ausgeführt werden kann, z.B. durch eine Endlosschleife anhand eines oder mehrerer
Ereignisse. Warum aber gerade jetzt bei 250 Aktionen, kann ich Dir nicht sagen. Das da unten
läuft durch und stoppt automatisch.

Code:
Dim c As Integer

Private Sub TextBox1_Change()
c = c + 1
TextBox1.Text = TextBox1.Text & "-" & c
End Sub

Private Sub TextBox2_Change()
TextBox1.Text = c
End Sub

Private Sub UserForm_Initialize()
c = 0
TextBox1.Text = c
End Sub

Gruß

Hallo,

Nachtrag, das könnte das Problem sein ...

Zitat:Prozudure der UserForm manchmal gegenseitig auf

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#5
Hallo Mourad,

was ein Code!

Nach 282 Iteration kommt es ohne Fehlermeldung zum Stillstand. Bei jedem Klick in TextBox2 kommt (vermutlich) die gleiche Anzahl hinzu bis zur Interger-Grenze von ca 32.000

Wieso stoppt es nach 282 Iterationen?

mfg

PS: Win 10, 32 bit, Outlook 2016, 32 bit
Antworten Top
#6
Hallo Fennek,

ehrlich gesagt, keine 100 Prozentige Ahnung, warum das ausgerechnet nach 282 Iterationen stoppt.
Bei einer ListBox ist das anders, da sind's nur 273 Schritte (Nach Aufruf einmal auf die 0 klicken).

Code:
Private Sub ListBox1_Change()
ListBox1.AddItem ListBox1.ListCount
ListBox1.ListIndex = ListBox1.ListCount - 1
End Sub

Private Sub UserForm_Initialize()
ListBox1.AddItem 0
End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#7
Hallöchen,

bei mir in 365-64 hab ich beim ersten Durchlauf nur 132 als letzte Zahl Sad
dann 262, 392 usw. also immer 130 mehr
(Textbox-Code)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste