Clever-Excel-Forum

Normale Version: Tabellenblattname vergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forum,

der Tabellenblattname wird automatisch vergeben mit.


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

     On Error Resume Next

     ActiveSheet.Name = Range("D4").Value

End Sub

jetzt mein Problem!
Wenn in Zelle D4 der gleiche Wert steh wie in einem anderen Tabellenblatt, wird der Name des Tabellenblatts nicht automatisch geändert.
Kann mann die Tabellenblätter auf ihre Namen überprüfen und wenn der Name schon vorhanden ist einen Zähler hinzufügen?
Hallo,

füge diese Funktion ein:
Code:
Function SheetExist(SheetName As String) as Boolean
Dim objSheet As Object
SheetExist = False
For Each objSheet In ActiveWorkbook.Sheets

If objSheet.Name = SheetName Then
  SheetExist = True
  Exit Function
End If
Next
End Function

Dann kannst Du z. B. so abfragen, ob das Sheet existiert:
Code:
If not SheetExist(Range("D4").value) then
Hallo Steuerfuzzi,

Du mußt nicht unbedingt alle Worksheets der Datei durchlaufen siehe hier

Code:
Function SheetExists(shname As String) As Boolean
Dim sh As Worksheet
' von Bernd (bst)
On Error Resume Next
Set sh = Sheets(shname)
SheetExists = Not sh Is Nothing
On Error GoTo 0
End Function
Hallöchen,

wenn man mit Fehlerbehandlungen arbeiten will, könnte man dort auch die Zähler setzen:


PHP-Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'Variablendeklarationen
'
IntegerString
Dim iCnt 
As IntegerstrIndex As String
   
'Gehe bei Fehler zur Sprungmarke Errorhandler
   On Error GoTo Errorhandler
   '
Blattname mit Index zum umbenennen
   ActiveSheet
.Name Range("D4").Value strIndex
'Makro verlassen
Exit Sub
'
fehlerbehandlung
Errorhandler
:
'Index hochsetzen
iCnt = iCnt + 1
strIndex = "(" & iCnt & ")"
Resume
End Sub 
Hallo euch drein,


vielen Dank, klappt prima: :28:

Gruß Klaus