Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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

Zeilen löschen - nicht genügend Arbeitsspeicher

Zeilen löschen - nicht genügend Arbeitsspeicher
08.03.2018 08:35:00
Florian
Hallo liebe Excelfreunde,
habe folgendes Problem: Beim ausführen des unten stehenden Makros endet dieses in folgendem Fehler:
Nicht genügend Arbeitsspeicher für diese Aktion. Wählen Sie weniger Daten aus,
oder schließen Sie andere Anwendungen. Erwägen Sie zum Erhöhen des verfügbaren Arbeitsspeichers die Verwendung einer 64-Bit-Version von Microsoft Excel.

Es sind keine anderen Programme geöffnet. Die 64-bit Version führt bei Outlook immer wieder zu hässlichen Komplikationen.
Hier das auszuführende Makro:
Sub Zeilen_loeschen()
Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten
Application.Calculation = xlCalculationManual 'automat.Berechnung ausschalten
Range("AA13:AA2012").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
Range("AC11:AG2012").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
Range("AC11:AG2012").Replace 0, "", xlWhole
Range("AJ11:QNZ11").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
Range("AJ11:QNZ11").Replace 0, "", xlWhole
Columns("A:A").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
ActiveWorkbook.Save
Columns("A:A").Replace 0, "", xlWhole
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.Calculation = xlCalculationAutomatic 'automat.Berechnung einschalten
Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten
End Sub
Im der fett gedruckten Zeile beliebt das Makro hängen. Es sind sehr viele Spalten (11890) und Zeilen (30012), welche ich mit diesem Makro löschen will.
Besten Dank für eure Hilfe.
Florian

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

Betreff
Datum
Anwender
Anzeige
ohne select
08.03.2018 08:42:20
Hajo_Zi
Hallo Florian,
Select, Activate usw. ist in VBA zu 99,8% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Der Cursor ist kein Hund, der überall rum geführt werden muss.
Option Explicit
Sub Zeilen_loeschen()
Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten
Application.Calculation = xlCalculationManual 'automat.Berechnung ausschalten
With Range("AA13:AA2012")
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End With
With Range("AC11:AG2012")
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End With
Range("AC11:AG2012").Replace 0, "", xlWhole
With Range("AJ11:QNZ11")
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End With
Range("AJ11:QNZ11").Replace 0, "", xlWhole
With Columns("A:A")
.Copy
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:= _
False
End With
ActiveWorkbook.Save
Columns("A:A").Replace 0, "", xlWhole
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Application.Calculation = xlCalculationAutomatic 'automat.Berechnung einschalten
Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: ohne select
08.03.2018 10:00:21
Florian
Hallo Hajo,
besten Dank für deine Mühe un deinen Hinweis. Mir ist bewusst, dass mein/meine Makros alles andere als elegant gelöst sind. Ich muss mich mal hinsetzen und diese mal so wie von dir soeben vorgeschlagen ausmisten und reinschreiben. Nichts desto Trotz hängt sich auch mit umgeschriebenem Code Excel bei folgendem Befehl auf:
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Kann ich hierfür einen anderen Befehl nehmen, welcher weniger Arbeitsspeicher frisst?
Danke im Voraus!
Florian
AW: ohne select
08.03.2018 10:06:50
Hajo_Zi
Hallo Florian,
das ist eine Zeile aus Deinem Code und da Stand nicht, das dies nicht läuft.
Ich habe keinen anderen Ansatz.
Vielleicht gibt es keine Leerzellen?
Gruß Hajo
Anzeige
AW: ohne select
08.03.2018 10:44:04
Daniel
Hi
sortiere mal das ganze nach Spalte A, so dass die zu löschenden Zeilen einen lückenlosen Zellblock bilden.
der Arbeitsaufwand, der beim Löschen der Zeilen entsteht, richtet sich nicht nach der Anzahl der Zeilen, sondern nach der Anzahl der ungeteilten Zellblöcke.
Löschst du beispielsweise die Zeilen 1, 3, und 5, ist der Aufwand dreimal so groß, wie wenn du die Zeilen 1-3 löschst.
ansonsten Checke mal die Spaltenangabe QNZ, ob die wirklich so notwendig ist.
das sind über 11.000 Spalten, das macht den Zellbereich den Excel hier verwalten muss, schon sehr groß.
Gruß Daniel
Anzeige
AW: ohne select
08.03.2018 10:50:18
Zwenn
Hallo Florian,
wenn Windows bei so einem billigen Befehl zu weng Arbeitsspeicher meldet, dann kann ich mir kaum vorstellen, dass es am Makro liegt. Schau mal in den Taskmanager, welche Prozesse den Arbeitsspeicher fressen. Zusätzlich wäre eine Info über Deine Arbeitsumgebung hilfreich: Wie groß ist der Arbeitsspeicher in deinem Computer überhaupt, wie wird der virtuelle Arbeitsspeicher verwaltet bzw. wie groß ist er eingestellt, welches Windows verwendest du und mal grob, wie alt ist die ganze Kiste und was wird da schon alles beim booten mitgestartet?
Wie groß ist denn die Excel-Datei, die Du geöffnet hast? Wenn die riesige Datenmengen enthält, nimmt das schon viel vom Arbeitsspeicher ein. Wie verhält sich das System, wenn du versuchst nach dieser Fehermeldung z.B. den Browser zu starten und im I-Net eine Seite aufzurufen?
Excel 32 Bit kann natürlich nur bis zu 4 GB RAM ansprechen. Kann also sein, dass alles andere trotzdem noch gut funktioniert, wenn Du mehr RAM verbaut hast.
Viele Grüße,
Zwenn
Anzeige

65 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige