nicht genügend stapelspeicher

Bild

Betrifft: nicht genügend stapelspeicher
von: andre
Geschrieben am: 08.10.2003 08:34:21

hallo allerseits,

hat eventuell jemand erfahrungen oder tips, wie man diesen fehler umgehen kann? ich habe ein paar makros, die mir etwas unter bestimmten bedingungen zusammenzählen sollen - wer sich mit statistik auskennt, dass soll so eine art histogramm werden.
ich habe das zählen mal über variablen realisiert, mal über zwischenspeichern in einer zelle, ...
das dumme ist, dass der fehler als ursache nicht viele daten hat. ich habe berechnungen mit über 1000 daten, und es geht. dann wieder welche mit 50, und der fehler kommt.
da sich der fehler auf ein oder zwei zu bewertende baugruppen konzentriert, hatte ich die vermutung, dass bei den datentypen was nicht stimmt. ich hole die daten aus einer datenbank. das scheint es aber auch nicht zu sein.

am anfang hatte ich auch den dr.watson - bei der ablage der zwischenergebnisse über zellen statt über das array stufung(). der kam übrigens unter Ex97. unter Ex2002 lief das makro durch, die ergebnisse waren i.o, aber es hat ewig gedauert. Ex2002 habe ich aber nur auf einem rechner, firmenstandard ist Ex97.

jetzt habe ich das problem mit dem stapelspeicher. allerdings zieht mein makro meist durch, aber dann fehlen einige ergebnisse oder sie sind falsch..
das ist für die bewertung schlimmer als wenn ich wegen dem dr. watson nichts habe.

hier mal zwei beispiele zur zählung:

hier stufe ich ein, die unteren abweichungen mit 0,2 - die oberen mit 0,5

test_bryg1 = 0: test_bryg2 = 0: test_bryg3 = 0: test_bryg4 = 0
For j = 0 To UBound(zaehler)
Select Case zaehler(j, 1)
Case 0
test_bryg4 = test_bryg4 + 1
Case 1
test_bryg1 = test_bryg1 + 1
Case 2
test_bryg2 = test_bryg2 + 1
Case 3
test_bryg3 = test_bryg3 + 1
Select Case zaehler(j, 2)
Case Is <= 0#
zaehler(j, 2) = zaehler(j, 2) 'ohne relevanz
Case Is <= 0.2
stufung(0) = stufung(0) + 1
Case Is <= 0.4
stufung(1) = stufung(1) + 1
Case Is <= 0.6
stufung(2) = stufung(2) + 1
Case Is <= 0.8
stufung(3) = stufung(3) + 1
Case Is <= 1#
stufung(4) = stufung(4) + 1
Case Is <= 1.5
stufung(5) = stufung(5) + 1
Case Is <= 2#
stufung(6) = stufung(6) + 1
Case Is < 999# ' für abweichungen grösser 2, 999 bedeutet kein messergebnis
stufung(7) = stufung(7) + 1
End Select
End Select
Next
For i = 0 To 7
Cells(varGesamtZeilen + 10 + i, 16 - test_max_mp) = stufung(i)
stufung(i) = 0
Next

...
'hier zähle ich die unterschiedlichen messpunktnamen
'diese namen treten öfter auf, z.b. "0815 x","0815 y" und "0815 z" ergibt 1x 0815
For k = 2 To varGesamtZeilen
If Left(Cells(k, test_max_mp), InStr(1, Cells(k, test_max_mp), " ")) <> _
Left(Cells(k - 1, test_max_mp), InStr(1, Cells(k - 1, test_max_mp), " ")) Then
GetAnzahl = GetAnzahl + 1
End If
Next

gruss andre

Bild


Betrifft: AW: nicht genügend stapelspeicher
von: Karl-Otto Reimann
Geschrieben am: 08.10.2003 12:02:04

Hallo Andre
Wäre es nicht einfacher, in Deinem Falle die Daten mit
=HÄUFIGKEIT() zu zählen? Diese Funktion klassifiziert
auch Daten unterhalb und oberhalb eines Bereichs.
mfG KO


Bild


Betrifft: AW: nicht genügend stapelspeicher
von: andre
Geschrieben am: 08.10.2003 12:30:15

hallo ko,
leider nicht. im blatt sind die abweichungen und grenzwerte angegeben, und ich muss die überschreitungen bewerten. das ganze dann noch in unterschiedlichen zusammenhängen, mal bezogen auf die achse - z.b. x, y oder z, werte jeweils in einer zeile, mal bezogen auf den punkt, also z.b. 0815 - die werte stehen dann meinetwegen in 3 zeilen, und letztendlich noch nach positionen, da gehören zu einer mehrere punkte dazu. mit "normalen" formeln bräuchte ich wahrscheinlich mehr als eine hilfsspalte. ich lese die daten daher in array's ein und bewerte und zähle es dabei bzw. anschliessend.

ich habe inzwischen bei der variablendefinition einige von variant auf die benötigten typen festgelegt, einige mehrfach vorkommende funktionsaufrufe durch variablen für das ergebnis ersetz, das case <= 0 auskommentiert (denn der fall tritt nicht ein - das case 3 darüber setzt >0 voraus) und nun scheint's zu laufen.

trotzdem danke.


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Automatisches ausführen eines Makros bei Beenden"