Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Not enough memory bei VBA Makro

Not enough memory bei VBA Makro
09.11.2006 15:28:15
HeinzS
Hallo Excelgemeinde,
ich habe schon wieder ein Problem und hoffe ihr könnt mir helfen. Ich habe mit Eurer Unterstützung mir ein Re-Rating Sheet gebastelt. Es funktioniert, solange nur rund 5000 Zeilen kalkuliert werden, darüber bekomme ich die Fehlermeldung not enough memory.
Was macht mein VBA Code? Zum einem werden Daten aus einem Pivot extrahiert und dann in ein aufgesetztes Spreadsheet kopiert, worin auch sehr viele Formeln enthalten sind. Als zweiter Schritt, werden dann solange in Spalte A datenvorhanden sind, diese Formeln runterkopiert und danach ein Pivot mit dem Endresultat aktualisiert.
Un hier glaube ich, daß das Problem daheim ist. Ich vermute, daß der Speicher nie gelöscht wird und daher die Fehlermeldung auftaucht.
Kann mal wer den Code anschauen und mir sagen, was ich besser machen sollte?

Sub selections()
Dim pt As PivotTable
Dim pt1 As PivotTable
Dim rf As PivotItem
Dim ActSheet As Worksheet
Sheets("Pivot_Existing").Select
Range("B6").Select
Set ActSheet = ActiveSheet
Set pt = ActiveSheet.PivotTables(1)
For Each rf In pt.RowFields("Parent").PivotItems
Selection.ShowDetail = True
ActiveSheet.Name = "Sheet1"
Sheets(ActSheet.Name).Select
Next
Sheets("Sheet1").Select
Range("a2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Calculation_Sheet").Select
Range("A4").Select
ActiveSheet.Paste
Range("AO1:BL1").Copy Destination:=Range("AO4:BL" & Range("A65535").End(xlUp).Row)
Sheets("Pivot_Impact").Select
Range("B11").Select
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh
End Sub

Bin für jeden Tipp dankbar!!!
Lg, Heinz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Not enough memory bei VBA Makro
10.11.2006 13:52:30
Reinhard
Hi Heinz,
markiert der Debugger eine zeile gelb und wenn ja welche?
Gruß
Reinhard
AW: Not enough memory bei VBA Makro
13.11.2006 08:35:50
HeinzS
Hallo Reinhard,
er zeigt folgende Zeile an:
Range("AO1:BL1").Copy Destination:=Range("AO4:BL" & Range("A65535").End(xlUp).Row)
Ich kenne das Problem schon von früher, denn ich muß regelmäßig eine große Anzahl von Zeilen durchrechnen (meist so um die 25 tsd). Es kann auch sein, daß es mit den Formeln zu tun hat, denn ich berechne immer die Kosten pro Sendung (arbeite in einer Spedition), wo ich die Prüfung Gewicht, Zone, Tariff druchführen muß. Dies mache ich derzeit mit der If formel kombiniert mit Vlookup.
z.B.: =if(and("Zone" = 1, "Service" = "economy"),vlookup(Tariffweight,RatecardRange,..), usw, dies passiert ca. 7 bis 9 x.
Ich konnte das Problem mal lösen, indem ich nach jedem Kopiervorgang die Formeln mit Werten ersetze. Dann gibt es kaum ein Problem mit memory.
Mache ich hier eventuell schon etwas falsch?
Lg,
Heinz
Anzeige
AW: Not enough memory bei VBA Makro
13.11.2006 15:00:07
Joe
Hallo Heinz,
dieses Problem hatte ich auch schon. Excel hat eine interne Begrenzung wieviele Formeln maximal gleichzeigt berechnet werden. Das steht irgendwo auf den Microsoft-Seiten, ich weiß aber nicht mehr wo. Es gibt da leider keine andere Lösung als wie du es schon gemacht hast nach jedem Kopiervorgang die Formeln in Werte umzuwandeln.
Gruß
Joe
AW: Not enough memory bei VBA Makro
13.11.2006 15:24:09
Reinhard
Hi Heinz,
wenn es da eine Speicherbegrenzung gibt steht die sicher auf http://www.xlam.ch/ aber ich überlasse es dir da zu suchen :-)) ist sehr umfangreiches Wissen dort.
Wie wäre es, du stellst anfangs des Codes dioe Berechnung auf manuell
Application.calculation=xlmanuell ' Syntax musste noch prüfen
und am Ende wieder auf automatisch?
Wenn dann doch ein Fehler kommt, vielleicht nur Zug um Zug berechnen lassen, also erst
Range("A1:IV5000").calculate, dann Range("A5001:IV10000").calculate usw.
Ungetestet, nur brainstorming.
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Not enough memory bei VBA Makro
15.11.2006 10:13:49
HeinzS
Hallo Reinhard,
werde es umgehend so versuchen, bin nur leider gerade auf einer Tagung. gebe aber auf jeden fall bescheid.
Danke und lg,
Heinz

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige