AW: mit verfeinerter Eingabefehler-Prüfung
21.03.2008 11:32:00
fcs
Hallo Robert,
hier eine Variante, die noch ein paar mehr Fehler bei der Zell-Auswahl und beim Blattnamen abfängt.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Fehler As Integer, ws As Object
On Error GoTo Fehler
Application.ScreenUpdating = False
If Target.Row >= 3 _
And Target.Column = 1 _
And Target.Cells.Count = 1 _
And Target.Range("A1").Value "" Then
If MsgBox("Tabelenblatt mit Name """ & Target.Value & """ anlegen ?", _
vbYesNo, "Blatt Vorlage kopieren") = vbYes Then
For Each ws In ActiveWorkbook.Sheets
If ws.Name = Target.Value Then
MsgBox "Blatt mit dem eingegeben Namen existiert bereits!"
Target.Select
GoTo ende
End If
Next
Worksheets("Vorlage").Copy before:=Worksheets("Vorlage")
Fehler = 1
ActiveSheet.Name = Target.Value
Fehler = 0
' Me.Activate
End If
End If
GoTo ende
Fehler:
Select Case Fehler
Case 1
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
Me.Activate
Target.Select
Case Else
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
End Select
ende:
Application.ScreenUpdating = True
End Sub