Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Register automatisch aus Zelle beschriften

Forumthread: Register automatisch aus Zelle beschriften

Register automatisch aus Zelle beschriften
06.01.2009 21:42:00
Don
Hallo zusammen,
ich möchte die Register meiner Arbeitsmappe automatisch beschriften aus einer Zelle heraus.
Beispiel: In dem Tabellenblatt steht in einer Zelle Montag 12.01.2009
das Register sollte so beschriftet sein Mo 12.01.2009
Gibt es hierfür eine Lösung?
Danke im Voraus.
Gruß
Don
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Register automatisch aus Zelle beschriften
06.01.2009 21:44:37
Daniel
Hi
nur über VBA.
hierzu sollte man allerdings wissen, wie der Zellwert bestimmt wird:
- per Eingabe von Hand
- berechnet durch Formel
Gruß, Daniel
AW: Register automatisch aus Zelle beschriften
06.01.2009 21:54:24
Don
Hi,
das Datum soll aus einer Zelle, die manuell gefüllt wurde, übernommen werden.
AW: Register automatisch aus Zelle beschriften
06.01.2009 22:05:00
Gerd
Hallo Don,
'ins Tabellenblattmodul:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address  "$A$1" Then Exit Sub
Me.Name = Left$(Target.Text, 2) & " " & Right$(Target.Text, 11)
End Sub


Gruß Gerd

Anzeige
AW: Register automatisch aus Zelle beschriften
06.01.2009 22:10:59
Daniel
HI
noch 3 Fragen:
- soll das für alle Register der Datei gelten oder nur für einzelne?
- ist es in jedem Blatt die gleiche Zelle?
- steht in der Zelle ein Datum mit dem Zahlenformat TTTT, TT.MM.JJJJ oder ein echter Text?
Gruß, Daniel
AW: Register automatisch aus Zelle beschriften
06.01.2009 22:28:36
Don
. . . also,
die Arbeitsmappe hat ein Tabellenblatt für Montag und für Dienstag - Freitag (wegen unterschiedlicher
bedingter Formatierung).
Per Makro lege ich jeweils ein neues Tabellenblatt an
Makros´s heißen
Montag
Dienstag
Mittwoch
Donnerstag
Freitag
Das Datum bezieht das Makro aus einem weiteren Tabellenblatt.
Das Makro sorgt dafür, dass das jeweilige Tabellenblatt ans Ende des Arbeitsmappe
gestellt wird und mit der gewünschten Farbe eingefärbt wird.
Jetzt sollte das Register aus dem neu erstellten Tabellenblatt heraus
fast wie Zelle B1 beschrifte werden (Datumsformat der Zelle Wochentag TT.MM.JJJJ).
Das Register sollte so beschriftet sein: Mo 12.01.2009
Anzeige
AW: Register automatisch aus Zelle beschriften
06.01.2009 22:38:25
Daniel
Hi
naja, den Namen kannst du ja auch per Makro vergeben
wenn das neue Sheet aktiv ist und der Wert in B1 steht, dann

ActiveSheet.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")


Gruß, Daniel

AW: Register automatisch aus Zelle beschriften
07.01.2009 18:15:19
Don
Hallo Daniel,
vielen Dank.
Das klappt ja prima. Ich hätte nicht geglaubt, dass die Lösung so kurz ist.
Echt toll. :-)
Gruß
Don
Anzeige
Neu eingefügte Tabelleblätter ans Ende stellen
16.01.2009 15:30:04
Don
Dank der lieben und kompetenten Hilfe aus diesem Forum heraus, bin ich schon ein ganzes
Stück weitergekommen.
Jetzt will ich die neu eingefügten Tabellenblätter automatisch ans Ende der Tabellenblätter schieben.
Hierzu habe ich auch schon ein Makro aufgezeichnet und wollte es an das bereits erstellte Makro
anhängen. Aber das Makro zeichnet auch die Namen der jeweiligen Tabellenblätter mit auf.
Somit würde es bei den nächsten Tabellenblättern nicht mehr gehen.
Nochmals kurz eine Info zu den Tabellenblättern:
Die Arbeitsmappe hat ein Tabellenblatt für Montag und für Dienstag - Freitag (wegen unterschiedlicher
bedingter Formatierung).
Per Makro lege ich jeweils Tabellenblätter für eine neue Woche an.
Die Register sind so beschriftet Mo 12.01.2009 Di 13.01.2009 usw.
Somit fällt auch die alphabetische Sortierung der Tabellenblätter aus.
Die Tabellenblätter 1 - 4 sollen unverändert an ihrem Platz stehen bleiben.
Ich freue mich auf Eure Unterstützung.
Gruß
Don
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Register automatisch aus Zelle beschriften


Schritt-für-Schritt-Anleitung

  1. Öffne das Visual Basic for Applications (VBA) Fenster:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge den Code in das richtige Modul ein:

    • Suche im Projekt-Explorer nach deinem Arbeitsblatt.
    • Doppelklicke auf das Arbeitsblatt, auf dem du die Register beschriften möchtest.
  3. Kopiere und füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$A$1" Then
           Me.Name = Left$(Target.Text, 2) & " " & Right$(Target.Text, 11)
       End If
    End Sub
    • Dieser Code erkennt Änderungen in Zelle A1 und benennt das Register entsprechend.
  4. Schließe den VBA-Editor und teste den Code:

    • Ändere den Inhalt von Zelle A1, um die Registerbeschriftung automatisch zu aktualisieren.

Häufige Fehler und Lösungen

  • Fehler: Das Register wird nicht umbenannt.

    • Lösung: Stelle sicher, dass du den Code im richtigen Arbeitsblattmodul eingefügt hast und dass du die korrekte Zelle überprüfst.
  • Fehler: Der Name ist ungültig.

    • Lösung: Überprüfe, ob der Zelleninhalt den Regeln für einen Register-Namen entspricht (z.B. keine Sonderzeichen).

Alternative Methoden

Eine andere Möglichkeit, die Register zu beschriften, ist die Verwendung eines Makros, das beim Erstellen neuer Tabellenblätter automatisch den Namen festlegt. Hier ein Beispiel:

Sub NeuesTabellenblattErstellen()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets.Add
    ws.Name = Format(Range("B1").Value, "DDD DD.MM.YYYY")
End Sub

Praktische Beispiele

Angenommen, du hast in Zelle B1 den Wert „Montag 12.01.2009“:

  • Der VBA-Code wird das Register in „Mo 12.01.2009“ umbenennen.
  • Ändere den Zellenwert, um zu sehen, wie sich die Registerbeschriftung automatisch aktualisiert.

Tipps für Profis

  • Verwende dynamische Zellbezüge: Anstatt immer nur A1 zu verwenden, kannst du den Code erweitern, um verschiedene Zellen oder sogar mehrere Arbeitsblätter zu berücksichtigen.

  • Fehlerbehandlung einbauen: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Eingaben abzufangen.


FAQ: Häufige Fragen

1. Wie kann ich den Zellwert dynamisch ändern?
Du kannst den Wert in der Zelle manuell ändern oder eine Formel verwenden, um den Wert zu berechnen.

2. Ist dieser Prozess in allen Excel-Versionen gleich?
Ja, der VBA-Code funktioniert in den meisten modernen Versionen von Excel, solange VBA unterstützt wird.

3. Kann ich mehrere Zellen für die Beschriftung verwenden?
Ja, du kannst den Code anpassen, um mehrere Zellen zu überwachen und die Register entsprechend zu benennen.

4. Was, wenn ich das Register nicht umbenennen kann, weil es bereits existiert?
Stelle sicher, dass der neue Name nicht bereits für ein anderes Register verwendet wird. Wenn nötig, füge eine Logik hinzu, um einen eindeutigen Namen zu generieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige