VBA: Zwischensp. nach jedem Kopiervorgang löschen

Bild

Betrifft: VBA: Zwischensp. nach jedem Kopiervorgang löschen
von: Joerschi
Geschrieben am: 22.05.2015 22:48:01

Hallo liebes Forum,
ich habe einen VBA-Code, der so aussieht:

Sub Filterhaerte_FUG14er_1()
  Application.ScreenUpdating = False
  With Sheets("Filtereintrag_aktWo_Wahl")
    For i = .Cells(11, 57) To .Cells(11, 58)
      .Cells(12, 57) = i
      KopiereFilter
      .Range("ep1:et6000").Copy
      With Sheets("Filtervarianten_14er")
        .Cells(2, Columns.Count).End(xlToLeft) _
          .Offset(-1, IIf(.Range("a1") = "", 0, 6)).PasteSpecial xlPasteValues
      End With
    Next i
  End With
  Application.CutCopyMode = False
  Application.Goto Sheets("Filtervarianten_14er").Range("A1"), True
End Sub

Sub KopiereFilter()
    With Sheets("Filtereintrag_aktWo_Wahl")
    
    Range("bg12:ct12").Select
    ActiveWindow.SmallScroll Down:=-12
    Selection.Copy
    Range("bg5").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    
    .Range("cv12").Copy
    .Range("et4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
          Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("cv12").Copy
    .Range("ez4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    
    End With
End Sub
Es werden damit 7 Spalten mit je 6000 Zeilen immer und immer wieder nebeneinander in eine andere Kartei der Datei kopiert.
Allerdings bricht Excel den Vorgang irgendwann ab wegen Speicherüberlastung (irgendwo zwischen 300-400 Kopiervorgängen). Man kann dann nicht mal mehr die Datei speichern ("Ressourcen nicht genug..."). Ich vermute, es liegt am Zwischenspeicher, der irgendwann überfüllt ist und damit alles abwürgt.
An welcher Stelle bzw. welchen Befehl könnte man einfügen, wo nach jedem Kopiervorgang der Zwischenspeicher gelöscht wird?
Danke vorab und beste Grüße
Joerschi

Bild

Betrifft: AW: VBA: Zwischensp. nach jedem Kopiervorgang löschen
von: Luschi
Geschrieben am: 22.05.2015 22:57:47
Hallo Joerschi,
mache es so:

    .Range("cv12").Copy
    .Range("et4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
          Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    .Range("cv12").Copy
    Application.CutCopyMode = False
    .Range("ez4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Application.CutCopyMode = False
Gruß von Luschi
aus klein-Paris

Bild

Betrifft: AW: VBA: Zwischensp. nach jedem Kopiervorgang löschen
von: Joerschi
Geschrieben am: 22.05.2015 23:25:14
Dank Dir Luschi.
Ich probiere es aus und gebe Feedback. Dauert aber bestimmt ein Weilchen - die umfangreichen Kopiervorgänge sind nicht ohne...
Viele Grüße
Joerschi

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA: Zwischensp. nach jedem Kopiervorgang löschen"