Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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)
Antworten Top
#5
Hallo euch drein,


vielen Dank, klappt prima: :28:

Gruß Klaus
Gruß Klaus

es Grüßt der niederRhein! :17:

Office 2010
Antworten Top


Gehe zu:


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