nach der Prüfung von Änderungen mit Hilfe des Codes von Daniel muss ich das betreffende Tabellenblatt kopieren und umbenennen. Das klappt auch wunderbar, allerdings muss dann noh der vorhandene Code des ursprünglichen Tabellenblattes in der Kopie gelöscht werden.
Hier mal mein Code zum Kopieren:
Sub fertig()
Dim shtName As String
Dim shtNameneu As String
Dim shtAltNr As Integer
Dim objSheet As Object
With Sheets("Cache")
shtNameneu = Sheets("Daten").Range("E1").Value & "-" & .Range("B8").Value & "-" & _
.Range("B9").Value & "-" & .Range("B10").Value & "-" & .Range("B4").Value & "-" & _
.Range("B6").Value & "-" & .Range("B5").Value
End With
For Each objSheet In ThisWorkbook.Sheets
If objSheet.Name = shtNameneu Then
iclick = MsgBox("Es ist bereits eine Arbeit mit gleichen Eckdaten abgespeichert. _
Haben Sie diese geöffnet und bearbeitet, kann der Datensatz nun überschrieben werden." & Chr(10) & Chr(10) & _
"Möchten Sie den Datensatz nun überschreiben?", 32 + 4, "überschreiben?")
If iclick = vbYes Then
MsgBox "überschreiben"
Application.DisplayAlerts = False
shtAltNr = Sheets(shtNameneu).Index
Sheets(shtNameneu).Delete
MsgBox shtAltNr
With Sheets("Cache")
.Copy after:=Sheets(shtAltNr - 1)
Sheets(shtAltNr).Name = Sheets("Daten").Range("E1").Value & "-" & .Range(" _
B8").Value & _
"-" & .Range("B9").Value & "-" & .Range("B10").Value & "-" & .Range("B4"). _
Value & "-" & _
.Range("B6").Value & "-" & .Range("B5").Value
End With
Application.DisplayAlerts = True
ElseIf iclick = vbNo Then
MsgBox "nicht überschreiben"
End If
End If
Next
End Sub
Hier müsste nach Kopieren nun noch eine Codezeile eingefügt werden, welche im neuen Tabellenblatt (Sheets(shtAltNr)) den Code löscht.
Danke schon mal für Eure Hilfe!
Jonathan