[MS Excel] Tabellenblattname aus Zellinhalt erzeugen - wie?

bitfunker

ewohner
Registriert
Okt. 2001
Beiträge
18.283
Hi, Folks!

Ich hätte hier eine Art "Stundenplan" in Form einer Excel-Tabelle.

Nun hätte ich gerne, dass aus einer Zelle (genauer C2), die eine Datumsangabe enthält, der Name des jeweiligen Tabellenblatts erzeugt wird, d.h. also, wenn in Zelle C2 als Inhalt steht "01.11.2006", dieses Datum dann eben auch unten als Name des Tabellenblatts auf dem Register auftaucht.

Frage: Wie geht das? Danke schonmal für eure Antworten! :)
 
Geh in VBE (ALT + F11) und wähle dort die Tabelle aus
In den Code hauste

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells.Row * Cells.Column <> 1 Then Exit Sub
If Cells(*SPALTE*, *ZEILE* ) = "" Then Exit Sub
Tabellenname = Cells(*SPALTE*, *ZEILE*)
End Sub

Speichern, Raus aus VBE und dann änder mal den inhalt der Zeile.
Wichtig, für Spalte nummerische Eingabe, nicht A, B ....

Achja, da du ja konkrete Werte angegeben hast ... ;)

Private Sub Worksheet_Change(ByVal Target As Range)
If Cells.Row * Cells.Column <> 1 Then Exit Sub
If Cells(3,2) = "" Then Exit Sub
Tabelle1.Name = Cells(3, 2)
End Sub

Geht aber nur für Tabelle1, wenn du 2 hast, musste die letzte Zeile dementsprechend in 2 ändern etc ;)
 
Zuletzt bearbeitet:
Hi, Hatred!

1. Willkommen bei ForumBase! :)

2. Vielen Dank soweit! :daumen:

3. Aber: Ich habe für jede Woche ein eigenes Tabellenblatt, daher wäre es praktisch, wenn ich das für ein Blatt einrichten könnte und dann innerhalb der Mappe bei jedem Blatt hätte, also wenn bei Tabelle1 in C2 "01.11.2006" steht, soll dies (was ja schon klappt) Name vom Tabelle 1 sein. Bei Tabelle 2 steht dann in C2 "06.11.2006" und dies soll dann auch gleich der Name werden, bei Tabelle 3 dann das selbe Spiel mit 13.11.2006, ...

Idee? Und wenn ich schon dabei bin, Löcher zu fragen:
4. Wie krieg ich das hin, dass Excel von Tabellenblatt zu Tabellenblatt in der Zelle C2 automatisch immer eine Woche draufzählt (also in der ersten Tabelle beginnend mit dem 01.11.2006, in der zweiten eben 06.11.2006, in der dritten 13.11.2006, ...)?
 
1. danke :)
3. Also willste ne Art schleife die das für alle Tabellen macht? Da weiß ich nicht ob und wie das geht. Umständlich aber am einfachsten den Code in jede Tabelle haun und TabelleX.name ändern.
4. Ganz stupide. Tabelle 2 -> Datum = 7 + Tabelle 1 Datum.
Also wenn du Datum in B1 hast, dann B1 aus Tabelle 2 = 7 + B1 aus Tabelle 1 usw
Für ausführliche Makrodinger hab ich keine Zeit atm ;)
 
1. :)

3. Hm, automatisch wäre halt schon einfacher... :)

4. Soweit bin ich schon, aber das funktioniert ja auch nicht fortlaufend. Bräuchte quasi eine Variable für das vorhergehende Tabellenblatt, das heißt im groben:

Anstatt in Tabelle2
=SUMME('Tabelle1'!C2;"7")
etwas in der Art:
=SUMME('Variable für vorhergehendes Tabellenblatt'!C2;"7")

oder eine Möglichkeit, die jeweils zu der vorher addierten Zahl "7" dazuzählt, also
in Tabelle2
=SUMME('Tabelle1'!C2;"7")
in Tabelle 3
=SUMME('Tabelle1'!C2;"14")
 
4. Ney das geht nicht so einfach. Das ist doch der gleiche Aufwand, wenn du Tabelle 2 = Tabell 1 + 7 und Tabelle 3 = Tabelle 2 + 7 etc oder Tabelle 3 + 14 Tabelle 4 + 21 etc
Wenn hättest sowas vorher machen müssen, sprich das für eine Tabelle machen und dann die Tabellenblätter kopieren, aber ich denk der Inhalt steht schon drinne? ;)

Das geht schon fortlaufend, oder ich versteh nich, was du mit fortlaufend so richtig meinst ;)
Vorallem bei nem Kalender ändert sich ja das Datum nicht auf einmal. Und selbst wenn Ferien oder so dazwischen sind, machst halt einen statischen Eintrag nach den Ferien und dann wieder weiter die +7 geschichte.

3. Das wäre aber im grunde nicht wirklich einfacher, das ist ja nur ne C&P geschichte. Du musst ja auch wirklich nur eine Variable immer ändern, also ein Zeichen.
Das mit der Schleife ist bissel umständlich imho ;)
 
Zurück
Oben