Tabellenblattname vergeben
#1
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?
Gruß Klaus

es Grüßt der niederRhein! :17:

Office 2010
Top
#2
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
Gruß
Michael
Top
#3
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
Gruß Stefan
Win 10 / Office 2016
Top
#4
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 
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
Hallo euch drein,


vielen Dank, klappt prima: :28:

Gruß Klaus
Gruß Klaus

es Grüßt der niederRhein! :17:

Office 2010
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste