Hallo euch allen,
bin jetzt nicht gerade der vba-Spezialist, aber für meine Kenntnisse schon relativ weit gekommen (denke ich).
Das Problem:
Ich habe es schon soweit, das eben ein neues Tabellenblatt nach meiner Vorlage mit richtigem Name erzeugt wird. Das Problem ist nur, dass ich nicht möchte das dieses erstellt wird wenn ich den Namen in Spalte B eingebe, sondern wenn ein x in Spalte A gesetzt wird. Wenn ich aber im nachfolgenden Code
If Intersect(Target, Range("B2:B6")) Is Nothing Then Exit Sub
in
If Intersect(Target, Range("A2:A6")) Is Nothing Then Exit Sub
abändere, wir x als Bezeichnung der neu erstellten Tabellenblätter übernommen! Ich möchte allerdings weiterhin die Namen als Bezeichnung beibehalten.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim a As Integer
If Selection.Count > 1 Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "In diesen Bereich dürefen sie nur eine Zelle wählen!"
Exit Sub
End If
If Intersect(Target, Range("B2:B6")) Is Nothing Then Exit Sub
For a = 1 To ThisWorkbook.Sheets.Count
If Sheets(a).Name = Target.Text Then
MsgBox "Tabelle mit den Namen: " & Target & " ist schon vorhanden"
Application.EnableEvents = False
Target = ""
Application.EnableEvents = True
Exit Sub
End If
Next a
Application.EnableEvents = False
If Target.Text > "" Then
Sheets("Vorlage").Copy Before:=Sheets(ThisWorkbook.Sheets.Count)
ActiveSheet.Name = Target
Target.Offset(0) = ActiveSheet.Name
ElseIf Target.Text = "" Then
On Error Resume Next 'Sicherheit wegen EnableEvents
Application.DisplayAlerts = False
Sheets(Target.Offset(0).Text).Delete
Target.Offset(0) = ""
Application.DisplayAlerts = True
End If
Application.EnableEvents = True
End Sub
Sub jKLÖDJWÖ()
Application.EnableEvents = True
End Sub
Vielen Dank im Voraus!
|