Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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
Inhaltsverzeichnis

Tabellenblätter automatisch nach Zellen benennen

Tabellenblätter automatisch nach Zellen benennen
16.04.2015 11:40:20
Fabian
Hallo
ich brauche für meine Excel-Tabelle ein Makro, das automatisch den Namen mehrerer Tabellenblätter ändert, sobald ich den Wert einer Zelle ändere.
In der Tabelle 1 trägt man ein Jahr ein, das in den einzelnen Blättern (5-16) für die Monate (August - Juli) von einem Datum in einen Text konvertiert wird. (Dadurch sind es immer zwei verschiedene Jahre)
Dabei muss das Jahr jeweils aus der Zelle E3 der entsprechenden Tabelle kommen und mit dem vordeffinierten Monatsnamen zusammen als z. B. "August 2015" angezeigt werden. Außerdem sollen sich die Namen direkt ändern, wenn die Zelle B1 und/oder B6 in der ersten Tabelle sich ändert, ohne das man jedes Tabellenblatt aufrufen oder einen Schalter betätigen muss. Falls die Zelle B1 und/oder B6 der Tabelle 1 leer ist, soll der Name des Tabellenblattes "[Monat] xxxx" lauten.
Ich weiß nicht ob es für das Makro wichtig ist, aber das Jahr in E3 wird nicht direkt von B1 und B6 abgegriffen.
Wenn jemand so ein Makro schreiben könnte wäre mir sehr geholfen, mein VBA ist dafür noch zu schlecht.
Vielen Dank
Fabian

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter automatisch nach Zellen benennen
16.04.2015 13:35:54
fcs
Hallo Fabian,
wichtig ist, dass nach einer Änderung in B1 und/oder B6 in E3 der Monatsblätter ggf. das Jahr neuberechnet wird.
Gruß
Franz
'Makro unter Tabelle1 (Blatt mit B1 und B6)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim intBlatt As Integer, Jahr As Integer, Monat As Integer
Dim wks As Worksheet
Select Case Target.Address(False, False, xlA1)
Case "B1", "B6"
If Range("B1")  "" And Range("B6")  "" Then
For intBlatt = 5 To 16
Set wks = Sheets(intBlatt)
Jahr = Val(wks.Range("E3").Text)
Monat = intBlatt + 3
wks.Name = Format(DateSerial(Jahr, Monat, 1), "MMMM") & " " & Jahr
Next
ElseIf Range("B1") = "" Or Range("B6") = "" Then
For intBlatt = 5 To 16
Set wks = Sheets(intBlatt)
Jahr = Year(Date)
Monat = intBlatt + 3
wks.Name = Format(DateSerial(Jahr, Monat, 1), "MMMM") & " xxxx"
Next
End If
End Select
End Sub

Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige