Ich habe einen relativ simplen code der aus einem Blatt Tabellenblätter kopiert, ans Ende des Blattes, und diese dann Umbenennt.
Klappt auch alles, aber nur ein paar mal. Führt man den Code mehrfach hintereinander aus kommt irgendwann die Meldung "Die Methode Copy ist für das Objekt Worksheet fehlgeschlagen.
Das tritt immer beim kopierbefehl auf:
WS.copy after:=Sheets(Sheets.Count) 'hier tritt das Problem auf!
Was kann ich ändern damit das ganze stabil läuft?
Den kompletten Code häng ich unten hin.
Danke für Eure Hilfe.
Gruß Flo
Function LoadEmptyDatabase(Dataset As String)
Dim WS As Worksheet
Dim g As Integer
Dim t As Integer
Dim Name As String
Application.ScreenUpdating = False
Tabellenblätter_einblenden
löschen
Set WS = Nothing
For g = 3 To 18
Set WS = ActiveWorkbook.Worksheets(g)
Name = WS.Name
WS.copy after:=Sheets(Sheets.Count) 'hier tritt das Problem auf!
t = InStr(Name, ".")
ActiveSheet.Name = Left(Name, t - 1)
Next
Set WS = Nothing
If Dataset = ".xxx" Then
Application.DisplayAlerts = False
ActiveWorkbook.Worksheets("XXX").Delete
Application.DisplayAlerts = True
End If
If Dataset = ".yyy" Then
Application.DisplayAlerts = False
ActiveWorkbook.Worksheets("YYY").Delete
Application.DisplayAlerts = True
End If
For Each WS In Sheets
If Right(WS.Name, 2) = ".d" Then
WS.Visible = 2
End If
Next WS
ActiveWorkbook.Worksheets("hkj").Visible = 2
Mechanics_einblenden
With Worksheets("Start").ComboBox_MechOrThermo
.Enabled = True
.Value = "Mechanics"
End With
ActiveWorkbook.Worksheets("Start").CommandButton_DeleteDatabase.Enabled = True
ActiveWorkbook.Worksheets("Start").CommandButton_Save_Database.Enabled = True
ActiveWorkbook.Worksheets("Start").Activate
Application.ScreenUpdating = True
End Function