Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Blattname aus dem Formelergebnis einer bestimmten Zelle

Blattname aus dem Formelergebnis einer bestimmten Zelle
01.11.2023 11:41:20
Micha
Hallo zusammen,

ich hätte gerne, dass der Blattname aus dem Formelergebnis einer bestimmten Zelle geschieht.
Ich habe eine Tabellenblatt mit dem Namen Grunddaten in welcher in der Zelle "B6" das Jahr steht und in den Zellen "C6" bis "C17" z.B. die Formel
=DATUM($B$6;1;1)
steht.
Das Ergebnis dieser Formel soll dann in den Tabellenblattnamen auftauchen, so dass die einzelnen Tabellenblätter die Namen der einzelnen Monate (Januar bis Dezember) bekommen.

Im Nächsten Schritt soll dann im jeweiligen Tabellenblatt in der Zelle der Monatsname "D4" der jeweilige Monatsname + dem Jahr stehen und in der Zelle "D2" das jeweilige Jahr.
Es soll so funktionieren, dass wenn ich den Inhalt des jeweiligen Blattes komplett kopiere automatisch in D4 und D2 automatisch die Daten stehen. Es ist auch wichtig, da noch weitere Zellen Bezug auf "D4" nehmen

Ich gehe davon aus, dass es mit VBA irgendwie zu lösen ist, weiß aber nicht, wie.

https://www.herber.de/bbs/user/163952.xlsx


VG

Micha

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

Betreff
Datum
Anwender
Anzeige
AW: Blattname aus dem Formelergebnis einer bestimmten Zelle
01.11.2023 16:29:56
Micha
Hallo, ich nochmals,

ich habe einen (hoffentlich) Teilerfolg mit dem Code

Private Sub Worksheet_Change(ByVal Target As Range)



If Not Application.Intersect(Target, Range("C1:C18")) Is Nothing Then
On Error GoTo fehlermeldung
If Target = "" Then Exit Sub
ActiveSheet.Name = Sheets("Grunddaten").Range("C17").Value
End If
Exit Sub

fehlermeldung:
MsgBox "Es wurden ungültige Zeichen erfasst!"
End Sub


Allerdings ist es jetzt so, dass als Blattname das Datum entsprechend ausgegeben wird und nicht einfach der Monat (z.B. Dezember).
Außerdem soll die Abfrage aktualisiert werden, wenn entweder das Blatt aufgerufen wird oder die Datei geöffnet wird. Kann mit beidem leben, da diese Daten nicht ständig wechseln.

Außerdem wird nicht der Monat + Jahr in Zelle "D4" (Dezember 2023) und das Jahr in Zelle "D2" (2023) ausgegeben sondern nur der Blattname, wie er auch übernommen wurde.

In der Beispiel Datei ist mein Teilerfolg in dem rotmarkierten Blatt zu finden.

https://www.herber.de/bbs/user/163960.xlsm

Oder ist es wieder so ein Thema, welches nicht möglich ist umzusetzen?

VG

Micha
Anzeige
AW: Blattname aus dem Formelergebnis einer bestimmten Zelle
02.11.2023 16:12:10
Yal
Hallo Micha,

"mit dem passenden Betrag ist alles möglich" war mein Standardspruch, um den Kunden zu erinnern, dass alles, was er haben will, am Ende in Rechnung gestellt wird ;-) Es wirkt Wunder, bei Kunden die sonst für "sinnvolle Lösung" eher beratungresistant sind.

Im Prinzip könnte es so gehen:
Private Sub Worksheet_Change(ByVal Target As Range)


Select Case Target.Address
Case "$C$14", "$C$17" ', usw
Blatt_umbenennen Target.Parent, Format(Worksheets("Grunddaten").Range("C17").Value, "MMM YYYY")
End Select
End Sub

Sub Blatt_umbenennen(Blatt As Worksheet, NeuerName As String)
On Error GoTo Catch
Try:
Blatt.Name = NeuerName
GoTo Finally 'Ausstieg ohne Fehler
Catch:
MsgBox "Es wurden ungültige Zeichen erfasst!"
Finally:
'falls etwas unbedingt hier erledigt werden muss
End Sub

Diese Code hat den Vorteil, dass mehrere Einzelzelle zu einer "Aktion" führen können. Die Fehlerbehandlung gilt nur innerhalb eines "Sub" daher die Verlagerung der potentiell fehlerverursachende Aktion in einer separaten Sub.

Nun es gibt einen anderen Problem, das man erst aufgrund deiner Beispieldatei sieht: wie weisst der Code, dass er gerade auf dem 4te Blatt steht und dementsprechend April (bzw. die Zelle, wo April steht) für den Name als Basis nehmen muss?

Irgendwo muss es einen festen Punkte geben, worauf der Rest aufgebaut werden kann (Archimedischer Punkt) . Ich könne es in deinem Beispiel nicht entdecken.
Vielleicht wäre es in dem Fall einfacher so vorzugehen: es gibt eine Grunddaten-Blatt mit X Einträge und eine Vorlage. Für jeden Eintrag wird die Vorlage kopiert und nach dem Eintrag benannt.

VG
Yal

Anzeige
AW: Blattname aus dem Formelergebnis einer bestimmten Zelle
03.11.2023 11:54:16
Micha
Hallo zusammen,
und Danke Yal für deine Unterstützung,

Ja das Blatt Grunddaten ist quasi der Fixpunkt.

Aktuell ist es so, dass die Zellen "D2" und "D4" auch auf dieses Blatt zugreifen. Gebe aber aktuell in jedem Tabellenblatt die Bezug per Formel an.
So z.B. greift die Zelle "D4" im Arbeitsblatt "Januar" (welches ich aktuell händisch so benannt habe) auf die die Zelle "C6" im Blatt "Grunddaten" zu.

Das die Zellen "D2" + "D4" (im jeweiligen Blatt "Monatsname") weiterhin als Datumsformat vorhanden sind, ist wichtig, da wie bereits erwähnt andere Zellen darauf zugreifen müssen und dies als Datum benötigen.
Daher wäre ein Automatismus doch sehr schön, der quasi den Blattnamen (Monatsnamen) sowie dementsprechend die Werte in den Zellen "D2" + "D4" erhält.

Was den Code angeht funktioniert das im ersten Step super. Sieht auch gleich viel besser aus in dem Format.

Jetzt wäre es noch gut, wenn das Blatt beim Aufrufen aktualisiert wird.
Habe versucht aus dem Code von Yal den folgenden Part zu kürzen:

Private Sub Worksheet_Change(ByVal Target As Range)


Select Case Target.Address
Case "$C$14", "$C$17" ', usw
Blatt_umbenennen Target.Parent, Format(Worksheets("Grunddaten").Range("C15").Value, "MMM YYYY")
End Select
End Sub


Bin aber da zu unwissend für und bekomme Fehler:

Private Sub Worksheet_Activate(ByVal Target As Range)

Blatt_umbenennen Target.Parent, Format(Worksheets("Grunddaten").Range("C15").Value, "MMM YYYY")
End Sub



und auch wenn ich den Code nicht ändere und ich die Zelle "D4" mit der Formel

=TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;31)


befülle ist das Ergebnis nicht mehr als Datum zu formatieren und weitere Zellen können damit nicht arbeiten.


Und ich versuche natürlich "sinnvolle Lösungen" anzunehmen und nicht beratungsresitent zu wirken. Dies geht leider auch immer nur Rahmen meiner Möglichkeiten. ;-)

VG

Micha


Anzeige
AW: Blattname aus dem Formelergebnis einer bestimmten Zelle
03.11.2023 14:38:50
Yal
Hallo Micha,

Du denkst vielleicht zu kompliziert.

Du hast, nehme ich an, 12 Blätter, die "Jan 2022" bis "Dez 2022" heissen und einmal im Jahr sollten diese in "Jan 2024" bis "Dez 2024" umbenannt werden sollten. Richtig so?

Dann schreibe eine Sub, die nur einmal im Jahr diese Datum ändern:

Sub Blätter_umbenennen()

Dim ws As Worksheet
Dim Jahr As Long

Jahr = Worksheets("Grunddaten").Range("B6").Value
For Each ws In ThisWorkbook.Worksheets
If ws.Name > "Grunddaten" Then ws.Name = Left(ws.Name, 4) & Jahr
Next
End Sub


VG
Yal
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige