Freigeben über

Tabellenblatt mit Datum aus Zelle benennen

Anonym
2023-05-26T06:45:28+00:00

Hallo

Ich würde gerne als Namen der Tabellenblätter ein Datum aus einer Zelle einfügen, ist das überhaupt möglich?

D.h., wenn ich in einer bestimmten Zelle das Datum (Jahr) ändere, möchte ich die Tabellenblattnamen im Format: "Monat (Name ausgeschrieben) Jahr(zweistellig)" automatisch aktualisieren lassen.

Bsp.: Ich trage in B1 eines Tabellenblattes (fixer Name) das Jahr 2023 ein, die weiteren Tabellenblätter sollen dann die Namen Jänner 23, Februar 23 etc. automatisch übernehmen.

LG

Friedrich

Microsoft 365 und Office | Excel | Für das Bildungswesen | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
{count} Stimmen
Antwort, die vom Frageautor angenommen wurde
  1. Anonym
    2023-05-26T09:18:39+00:00

    Hallo Friedrich,

    sorry, habe den Jahressprung übersehen.

    Probiere es so:

    Private Sub Worksheet_Change(ByVal Target As Range) 
    
    If Target.Address(0, 0) <> "B1" Or Target.Count > 1 Then Exit Sub 
    
    Dim i As Integer 
    
    For i = 2 To 5 
    
          Sheets(i).Name = Format(DateSerial(Target, i + 7, 1), "MMMM YY") 
    
    Next 
    
    For i = 6 To 13 
    
          Sheets(i).Name = Format(DateSerial(Target + 1, i - 5, 1), "MMMM YY") 
    
    Next 
    
    End Sub
    

    Claus

    Eine Person fand diese Antwort hilfreich.
    0 Kommentare Keine Kommentare

4 zusätzliche Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2023-05-26T07:42:43+00:00

    Hallo Friedrich,

    füge nachfolgenden Code in das Codemodul des gewünschten Blattes ein:

    Private Sub Worksheet_Change(ByVal Target As Range) 
    
    If Target.Address(0, 0) <> "B1" Or Target.Count > 1 Then Exit Sub 
    
    Dim i As Integer 
    
    For i = 2 To 13 
    
          Sheets(i).Name = Format(DateSerial(Target, i - 1, 1), "MMMM YY") 
    
    Next 
    
    End Sub
    

    Claus

    0 Kommentare Keine Kommentare
  2. Anonym
    2023-05-26T08:23:53+00:00

    Danke Claus

    Grundsätzlich funktioniert es, es sind bitte nur kleine Anpassungen notwendig:

    • Die Zelle B1, auf die ich mich bezogen habe, liegt auf einem anderen Tabellenblatt (eines vorher, Name "Jahr"). Ich habe versucht, im Code statt "B1" den Ausdruck "Jahr!B1" und "=Jahr!B1" einzugeben, so wie ich es mit weiteren Datumsberechnungen innerhalb der Tabellen auch mache, das funktioniert leider nicht so einfach.
    • Wie ändere ich den Code, wenn es nicht mit Jänner, sondern mit September losgehen soll und dann ein Jahressprung auch drinnen ist (Schuljahr)?

    Kannst du mir bitte dabei auch weiterhelfen?

    LG

    Friedrich

    0 Kommentare Keine Kommentare
  3. Anonym
    2023-05-26T09:12:10+00:00

    Hallo Friedrich,

    das Blatt "Jahr" ist das erste Blatt. In das Codemodul des Blattes gehört der folgende Code:

    Private Sub Worksheet_Change(ByVal Target As Range) 
    
    If Target.Address(0, 0) <> "B1" Or Target.Count > 1 Then Exit Sub 
    
    Dim arrMonat As Variant 
    
    Dim i As Integer 
    
    arrMonat = Array(9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8) 
    
    For i = 2 To 13 
    
          Sheets(i).Name = Format(DateSerial(Target, arrMonat(i - 2), 1), "MMMM YY") 
    
    Next 
    
    End Sub
    

    Claus

    0 Kommentare Keine Kommentare
  4. Anonym
    2023-05-30T06:27:50+00:00

    Danke, das war's.

    0 Kommentare Keine Kommentare