Anzeige
Archiv - Navigation
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatische Benennung der Tebellenblätter

Automatische Benennung der Tebellenblätter
17.01.2007 13:19:24
Cornelis
Hallo Forum
Ich habe vor einiger Zeit bereits mal eine Hilfestellung erhalten: Es geht darum, dass der Name eines Tebellenblattes automatisch mit einer Zelle ("O3", siehe Code) in dieser Arbeitsmappe verküpft ist: Folgender VBA-Code funktioniert:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Target, Sh.Range("O3")) Is Nothing Then
On Error Resume Next
Sh.Name = Sh.Range("O3").Value
If Err.Number > 0 Then
MsgBox Err.Description, vbCritical, "Fehler " & Err.Number
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub

Mein Problem ist nun, dass der Wert nicht automatisch in die Zelle "O3" geschrieben wird, sondern dieser anhand einer Formel automatisch generiert wird: "O3=WENN(Uebersicht!$B$11="";"";Uebersicht!$B$11)". Wenn ich nun im Tabellenblatt "uebersicht" in der Zelle B11 den Wert ändere, wird dieser zwar in die Zelle "O3" übernommen, aber der Name des Tabellenblattes wird nicht automatisch aktualisiert - ist dies möglich, kann mir jemand weiterhelfen?
Besten Dank!
Gruss, Cornelis

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatische Benennung der Tebellenblätter
17.01.2007 14:40:06
ChrisL
Hallo Cornelis
Code unter Tabelle Uebersicht einbinden:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B11")) Is Nothing Then
On Error Resume Next
Worksheets(1).Name = Range("B11").Value
If Err.Number > 0 Then
MsgBox Err.Description, vbCritical, "Fehler " & Err.Number
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub

Worksheets(1).Name bedeutet, dass der Name des ersten Tabellenblattes innerhalb der Mappe angepasst wird. Evtl. brauchst du somit die Zahl 1 anzupassen.
Gruss
Chris
Anzeige
AW: Automatische Benennung der Tebellenblätter
17.01.2007 15:32:30
Cornelis
Hallo Chris
Besten Dank für deine Info - leider funktioniert es nicht so - habe mich wohl nicht klar erklärt: im Tabellenblatt "uebersicht" gebe ich den Wert im Feld "B11" ein (z.B: B1.2, bisheriger Wert war A_1.1). Dieser Wert wird ins Tabellenblatt "A_1.1" (Name generiert aus bisherigem Wert in Zelle "O3" in Tabellenblatt "A_1.1", welcher sich wiederum auf Zelle "B11" in "uebersicht" bezieht) in die Zelle "O3" übernommen. Aufgrund des neuen Wertes in "O3" (B1.2) soll nun der Name des Tabellenblattes "A_1.1" geändert werden in "B1.2". Der Name des Tabellenblattes "uebersicht" soll dabei nicht ändern.
Gibts dafür auch eine Lösung?
Danke!
Gruss, Cornelis
Anzeige
AW: Automatische Benennung der Tebellenblätter
17.01.2007 15:40:09
ChrisL
Hallo Cornelis
Ich meinte so...

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B11")) Is Nothing Then
On Error Resume Next
Worksheets(1).Name = Worksheets(1).Range("O3").Value
If Err.Number > 0 Then
MsgBox Err.Description, vbCritical, "Fehler " & Err.Number
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub

Also Auslöser des Event/Ereignis ist B11, aber Bezug auf Tabelle (Index 1) O3.
O3 liefert kein Ereignis, daher muss der Auslöser B11 sein.
Gruss
Chris
Anzeige
AW: Automatische Benennung der Tabellenblätter
17.01.2007 17:00:03
Cornelis
Hallo Chris
Danke für deine Antwort - werde es die nächsten Tag anschauen (komme leider vorher nicht mehr dazu) und bei Bedarf gerne nochmals melden!
Gruss, Cornelis

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige