Ich glaub, ich hab’s
Hallo Ulli, hallo Reinhard,
ich hab’s jetzt mal so getestet, wie Ulli es gemacht hatte: Identischen Code in jedem Tabellenblatt.
Wenn ich jetzt z.B. in Blatt1 bin und dann den Code von z.B. Blatt2 aufrufe, kommt Fehler 400.
Also, Ulli,
wie schon gesagt: Den Code nur in einem eigenen Modul und in allen Blättern löschen. Dann müsste es klappen.
Gruß, Andreas
Etwas erweiterte Version
Hallo Ulli,
hier noch eine etwas erweiterte Version des Makros. Es fängt noch ein paar mögliche Fehler ab, u.a. den von dir unten erwähtnen doppelten Blattnamen.
Sub blattname()
Dim bn As String
Dim blatt As Object
bn = Cells(1, 1)
bn = Replace(bn, ":", "")
bn = Replace(bn, "\", "")
bn = Replace(bn, "/", "")
bn = Replace(bn, "?", "")
bn = Replace(bn, "\*", "")
bn = Replace(bn, "[", "")
bn = Replace(bn, "]", "")
bn = Left(bn, 31)
If Len(bn) = 0 Then
Beep
Else
For Each blatt In ActiveWorkbook.Sheets
If blatt.Name = bn Then
MsgBox bn & " schon vorhanden"
Exit Sub
End If
Next
ActiveSheet.Name = bn
End If
End Sub
Wie gsagt, nur 1x in ein eigenes Modul kopieren.
Gruß, Andreas