Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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
Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 16:02:55
Stefan
Guten Tag liebe Community,
leider habe ich im www nicht meine Lösung gefunden und muss hier nachfragen. Meine VBA Kenntnisse beschränken sich im öffnen und einfügen von Befehlen ;)

Ausgangssituation:
- Es gibt mehrere Tabellen die "Montag_1", "Dienstag_2," usw heißen
- eine Tabelle die "Datum" heißt (in dieser Tabellen soll immer der aktuelle Monat eingegeben werden)
- in den Tabellen Montag_1 etc. gibt es ein Datumsfeld (wir nennen die Zelle bspw. F1), welches sich mit Befehl "=Datum!B1" auf das Datum-Tabellenblatt bezieht

Problem:
- das Datum, welches sich nun in der Zelle F1 befindet, soll nun via Makro automatisch das Tabellenblatt in das entsprechende Datum umbenennen.

Ich hoffe ihr könnt mir recht präzise erklären, was ich wo genau einzugeben habe oder welche Alternative möglich wäre.

Mit freundlichen Grüßen
Stefan

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 16:13:49
onur
DU solltest erstmal genau erklären, was du meinst.
z.B.: Was meinst du mit "Tabelle"? eine Tabelle oder ein Tabellenblatt? Wann genau soll sich das Makro einschalten?
Ausserdem wäre es viel leichter zu verstehen, was du willst, wenn du eine kleine Beispielsdatei posten wüdest, am Besten mit Wunschergebnis.
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 16:28:23
ralf_b
zusätzlich zu onurs Forderungen möchte ich wissen
Zitat: "Es gibt mehrere Tabellen die "Montag_1", "Dienstag_2," usw heißen"

wie weit geht diese Reihe? bis 7 oder bis Monatsende?
die Formel in F1 würde ich rauswerfen. da die sich ja ständig an eine neue Eingabe anpasst. Soll der Name sich auch regelmäßig oder nur einmalig ändern?
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 16:55:11
Stefan
Tut mir leid, dass ich mich so bescheiden ausgedrückt habe.

Mit "Tabellen" waren Tabellenblätter gemeint. Das Makro soll eigentlich sofort auslösen, wenn ich die aktuellen Daten in die entsprechenden Zellen einfüge. Zur Not könnte ich es manuell auslösen, aber es sollte dann natürlich direkt auf allen Tabellenblätter funktionieren, ohne das ich es für jedes einzeln ausführen muss.

@ralf_b
also die Tabellenblätter gehen weiter bis Dienstag 6 (schlechteste Variante wäre Sonntag den 1. bis maximal Dienstag den 31.)
Ich muss die Datei quasi für jeden Monat einzeln erstellen, deswegen die Variante, dass sich die Zelle F1 immer das entsprechende Datum abholt (von dem Tabellenblatt Datum). Und der Tabellenblattname soll sich dann in das jeweilige Datum ändern.

Ich habe euch hier das Beispiel hochgeladen https://www.herber.de/bbs/user/163176.xlsm

Mit freundlichen Grüßen
Stefan
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 17:13:02
onur
Und warum genau glaubst du, pro TAG ein Blatt zu brauchen?
Wenn du das wirklich so machen willst, verkomplizierst du wirklich alle zukünftigen Formeln, die z.B. blattübergreifend Werte summieren müssen (z.B. Wochen-, Monatsauswertungen) und bist spätestens nächste Woche wieder hier, weil du die Formeln nicht hinkriegst....
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 17:18:03
Stefan
Weil es für jeden Tag ne Auflistung von verschiedene Fahrzeugen gibt, wo Pausen, Fahrer etc. dokumentiert werden sollen.
Daher sieht jedes Blatt eigentlich gleich aus, ich brauche es aber definitiv für jeden Tag im Monat.

Und um nicht jedes Blatt händisch anfassen zu müssen, wollte ich es mir vereinfachen ;)
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 18:40:18
ExcelProbierer
Sorry onur,
aber wenn Stefan schreibt VBA nur copy-paste, sei meine Ergänzung erlaubt ;-)

Hallo Stefan,
in onur's 163178.xlsm den Tabellenblattnamen des zweiten Blattes von "Vorlage - nix ändern !" abändern in "Vorlage".
Sonst läuft das VBA nicht ;-(
onur hat den VBA geschrieben und kurz vor absenden noch den Tabellenblattnamen geändert damit Du offensichtlich siehst, dass Du auf diesem Blatt nichts ändern sollst.

VG
ebenfalls Stefan
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
30.09.2023 18:42:43
onur
Danke, aber ich habe schon die neue Version gepostet.
Da war noch ein anderer Fehler (Begrenzung der Anzahl der Blätter) aus der Testphase. Ich hatte keine Lust, 31 Blätter jedesmal wieder zu löschen. :)
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 13:14:44
Stefan
Vielen Dank, aber leider sind wir nun komplett am Ziel vorbei geschossen.

Die Tabellenblätter für jeden Tag im Monat sind bereits vorhanden (weil jeder Wochentag seperat mit Daten gefüllt wurde und ich bereits die Tabellenblätter so kopiert habe, dass der Monat komplett abgedeckt ist). Ich wollte nur, dass das Datum aus der einen Zelle als Tabellenblattname übernommen wird, wobei das Datum aber von einem seperaten Tabellenblatt geholt wird.

Mit freundlichen Grüßen
Stefan
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 13:22:20
onur
Das ist doch Quatsch, die Blätter im nachhinein umzunennen. Viel zu viel Aufwand. Und wenn man schon VBA braucht, wozu dann noch das Datum und die Namen aus einem anderen Blatt holen, statt sie zu "errechnen" ???
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 14:29:32
GerdL
Hallo Stefan!
Sub Unit()

ActiveSheet.Name = ActiveSheet.Range("F1").Text
End Sub

Gruß Gerd
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 21:18:30
Stefan
@onur
Hinterfrage doch nicht, warum ich das so will. Weil ich es die nächsten 30 Jahre wahrscheinlich jeden Monat so erstellen muss. Daher sollte es mir die Arbeit vereinfachen.

@GerdL
Danke für die Hilfe. Nächste Frage: Wenn ich den im Makro nun erweitere, sodass er das nächste Blatt anwählen soll und das gleiche für dieses Tabellenblatt auführen soll, kommt leider ein Fehler:
Sub TabName()

ActiveSheet.Name = ActiveSheet.Range("F1").Text 'ich befinde mich hier auf Montag_1 und führe dann das Makro aus
Sheets("Dienstag_1").Select
ActiveSheet.Name = ActiveSheet.Range("F1").Text 'diese Zeile wird mir dann als Fehler angezeigt
End Sub

Kann man das so überhaupt lösen oder müsste ich für jedes Tabellenblatt ein eigenen Code hinterlegen, der dann (wie auch immer?!) ausgelöst wird?

Mit freundlichen Grüßen
Stefan
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 21:24:50
onur
"Daher sollte es mir die Arbeit vereinfachen." ??? Echt jetzt?
DEINE Version ist doch viel mehr Arbeit. Bei meiner Version brauchst du nicht mehr vorher irgendwelche Zellen mit irgendwelchen Datumswerten oder Blattnamen vollzuschreiben.
Aber offensichtlich hast du sie dir nicht mal genau angesehen oder kapiert....
AW: Tabellenblattname automatisch ändern anhand einer Zelle
02.10.2023 07:17:15
GerdL
Hallo Stefan,

2 x den selben Wert als Blattname nehmen, geht in einer Datei nicht. Du musst dir eine Abweichung beim 2, Blatt überlegen.

Gruß Gerd
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 21:49:52
Piet
Hallo

probier es bitte mal mit diesem Code. Er füllt alle Tabellen mit neuem Namen aus. Und meldet ggf. Fehler.

Ich empfehle aber dringend über den Vorschlag von onur nachzudenken. Ich würde auch den Code so ändern, das eine neue Datei mit 30 Tabellen sofort per Makro richtig ausgefüllt wird, ohne den Aufwand vorher alles per Hand ausfüllen zu müssen.

Du sagtest das wirst du noch 30 Jahre so machen. Dann solltest du wirklich über Erleichterungen nachdenken.
Ob du unsere Tipps annehmen willst oder nicht musst du selbst entscheiden.

mfg Piet
Anzeige
AW: Tabellenblattname automatisch ändern anhand einer Zelle
01.10.2023 22:01:49
Piet
Hallo

Pardon, Code einfügen vergessen. Hier ist er. - Es werden nur Tabellen umbenannt wo ein "_" Zeichen im Namen ist.

mfg Piet

  • Sub Alle_Tabellen_umbenennen()
    Dim k As Integer
    For k = 1 To Worksheets.Count
    If InStr(Worksheets(k).Name, "_") Then
    If Worksheets(k).Range("F1") > "" Then _
    Worksheets(k).Name = Worksheets(k).Range("F1")
    Else
    MsgBox Worksheets(k).Name & " Datum in Zelle F1 fehlt!"
    End If
    End If
    Next j
    End Sub
  • 301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Anzeige

    Infobox zum Thema

    EXCEL - Tabellenblattname automatisch ändern nach Inhalt von Zelle A1


    Inhaltsverzeichnis


    Die Fragestellung


    Du möchtest, dass der Name eines Excel-Tabellenblattes automatisch aktualisiert wird, sobald der Inhalt der Zelle A1 geändert wird.


    Erläuterung des Problems {#erläuterung-des-problems}


    In Excel ist der Name eines Tabellenblattes normalerweise statisch. Für dynamische Anwendungen oder Dashboards kann es jedoch nützlich sein, den Namen des Tabellenblattes basierend auf dem Inhalt einer bestimmten Zelle automatisch zu ändern.


    Lösung des Problems {#lösung-des-problems}


    Um den Namen eines Tabellenblattes automatisch zu ändern, wenn der Inhalt von Zelle A1 geändert wird, kannst du das Worksheet_Change Ereignis verwenden. Hier ist ein VBA-Beispiel:

    Private Sub Worksheet_Change(ByVal Target As Range)
        ' Überprüfen, ob die Änderung in Zelle A1 erfolgt ist
        If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
            On Error GoTo ErrHandler
            Application.EnableEvents = False ' Um zu verhindern, dass das Ereignis erneut ausgelöst wird
            Me.Name = Target.Value ' Ändere den Namen des Tabellenblattes
        End If
    ExitHandler:
        Application.EnableEvents = True ' Stelle sicher, dass Ereignisse wieder aktiviert werden
        Exit Sub
    ErrHandler:
        MsgBox "Fehler beim Ändern des Tabellenblattnamens. Stelle sicher, dass der Name gültig ist und nicht bereits verwendet wird."
        Resume ExitHandler
    End Sub

    Dieses Makro muss im Codebereich des Tabellenblattes platziert werden, dessen Name geändert werden soll. Es überprüft, ob Zelle A1 geändert wurde, und ändert dann den Namen des Tabellenblattes entsprechend. Beachte, dass Tabellenblattnamen einzigartig sein müssen und bestimmte Zeichen nicht enthalten dürfen (wie :, /, ?, *, [, ]).


    Anwendungsbeispiele aus der Praxis


    • Projektmanagement: Automatisches Umbenennen von Blättern basierend auf Projektphasen oder -namen.
    • Berichterstattung: Dynamische Anpassung von Berichtsnamen anhand von Datumsangaben oder anderen Schlüsselparametern.

    Tipps


    • Verwende Application.EnableEvents = False, um zu verhindern, dass das Ereignis erneut ausgelöst wird, während das Makro ausgeführt wird.
    • Fange Fehler mit On Error GoTo ab, um Probleme bei ungültigen Namen zu behandeln.

    Verwandte Themenbereiche


    • Ereignisgesteuerte Makros in Excel
    • Automatisierung von Benennungsprozessen
    • VBA-Programmierung für benutzerdefinierte Interaktionen

    Zusammenfassung


    Das automatische Ändern des Tabellenblattnamens in Abhängigkeit vom Inhalt einer Zelle kann durch das Worksheet_Change Ereignis in VBA implementiert werden. Dies ermöglicht eine dynamische Anpassung des Tabellenblattnamens, was besonders in interaktiven Arbeitsmappen oder bei der Erstellung von Berichten nützlich sein kann. Es ist wichtig, Fehlerbehandlungen einzubauen, um sicherzustellen, dass der Prozess auch bei ungültigen Namen reibungslos funktioniert.

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige