Mike,
Ich bin Deiner Logik mal untreu und habe das Makro meinem Verständnis nach so abgeändert, dass mein Gedankengang zwar nachvollziehbar ist, aber Spielraum für Weiterentwicklung lässt.
Hinweis:
- Es wird kopiert
- Es wird geprüft ob schon vorhanden
- Es wird gelöscht wenn schon vorhanden
Sub TestA()
Dim wksQuelle As Worksheet, wksZiel As Worksheet, wks As Worksheet
Dim strDatum As String
Dim strNewName As String
'Einfache Fehlerbehandlung
On Error GoTo FinishErr
'
strDatum = Format(Date, "dd.mm.yyyy")
Set wksQuelle = ActiveSheet
'Abfrage auf Name neues Blatt
strNewName = InputBox("The File will be saved in your current Workbook and today's date: " & Format(Now, "dd.mm.yyyy"), , strDatum)
If strNewName = "" Then
MsgBox "Vorgang abgebrochen." & vbCrLf & "Makro unterbricht an dieser Stelle.", vbCritical + vbOKOnly, "Autor informiert:"
Exit Sub
Else
'Arbeitsblatt wird erstmal kopiert
wksQuelle.Copy After:=Sheets(ActiveWorkbook.Sheets.Count)
Set wksZiel = ActiveWorkbook.Worksheets(ActiveWorkbook.Sheets.Count)
'Jetzt wird Name aus Inputbox zugewiesen,
'wenn Name schon vergeben, springt er FinishErr
wksZiel.Name = strNewName
End If
'
FinishErr:
Select Case Err.Number
Case 1004
MsgBox "Name schon vergeben. Ich könnte ab hier anbieten einen neuen Namen für die Kopie zu vergeben," & vbCrLf & "Lösche dieses Arbeitsblatt aber lieber und breche das Makro ab.", vbCritical + vbOKOnly, "Autor informiert"
Application.DisplayAlerts = False
wksZiel.Delete
Application.DisplayAlerts = True
Exit Sub
'Resume Next
Case Else
End Select
End Sub
|