ich habe eine Tabelle in der ich ein Master-Tabellenblatt erstellt habe und dieses
so oft Kopieren und Umbennen möchte wie bestimmte Daten in einer Spalte vorhanden sind.
Tabelle1 "Objekte": Blatt mit den Daten-Spalten
Tabelle2 "MASTER": Master-Tabellenblatt
Tabelle2 "MASTER_AUSW": Master-Tabellenblatt 2
VBA Code:
Sub CopyMasterSheet()
Dim MyRange As Range
Dim Cell As Range
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim Arr1()
Dim Arr2()
Dim Arr3()
x = 5
y = 1
Sheets("Objekte").Select
Range("A5").Select
Abfrage1 = MsgBox("Starte jetzt mit dem Löschen aller Objekt-Blätter", vbOKCancel)
If Abfrage1 = 2 Then Exit Sub
'Lösche alle Objekt-Blätter
Do While Range("A" & x) ""
ReDim Preserve Arr1(y)
ReDim Preserve Arr2(y)
ReDim Preserve Arr3(y)
Arr1(y) = Range("A" & x)
Arr2(y) = Range("B" & x)
Arr3(y) = Range("C" & x)
Call SheetDelete(Range("B" & x).Value)
x = x + 1
y = y + 1
Loop
y = 1
Abfrage1 = MsgBox("Starte jetzt mit dem Kopieren der Master-Blätter", vbOKCancel)
If Abfrage1 = 2 Then Exit Sub
For y = 1 To UBound(Arr1)
Worksheets("MASTER").Copy after:=Worksheets(Worksheets.count)
ActiveSheet.Name = Arr2(y)
ActiveSheet.EnableCalculation = False
Worksheets("MASTER_AUSW").Copy after:=Worksheets(Worksheets.count)
ActiveSheet.Name = Arr2(y) & "_Ausw"
ActiveSheet.EnableCalculation = False
Next y
End Sub
Sub SheetDelete(SheetName)
Dim ws As Worksheet
Dim ws_A As Worksheet
SheetName_A = SheetName & "_Ausw"
Application.DisplayAlerts = False
Err.Clear
On Error Resume Next
Set ws = Sheets(SheetName)
Set ws_A = Sheets(SheetName_A)
' If Err 0 Then Exit Sub
ws.Delete
ws_A.Delete
Set ws = Nothing
Set ws_A = Nothing
End Sub
Löschen geht immer super! Fett ist die Zeile wo der Debugmodus hängt.
Der Code funktioniert - nur bricht dieser an undefinierbaren Punkten regelmäßig ab. Und zwar so das ich auch kein manuelles kopieren von Tabellen-Blättern vornehmen kann. Ich muss dann das Blatt schließen und neu aufrufen.
Ich tippe auf Speicher - kann ich den für jeden Durchlauf wieder freigeben?
Habe den Code bei völlig leeren Tabellenblättern angewendet - da läuft der durch. Sobald ich einen Kommentar im Masterblatt einfüge und die Funktion nochmals starte hängt er sich im Debug modus wieder auf.