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

Forumthread: Blattname mit VBA ändern

Blattname mit VBA ändern
14.02.2013 18:33:55
Golem
Hallo Excel-Fachleute,
ich habe eine Excel-Datei mit zwei Tabellenblätter.
Im Tabellenblatt 1 habe ich ein SpinButton, mit dem ich einen Text in der Zelle X2 mit Ziffern bzw.
Zahlen von 1 bis 52 versehen kann ( Gesamttext "Zahlung Whn 1 bis 52" ).
Gleichzeitig verwende ich beim rauf- bzw. runterschalten den jeweiligen Klick dieses SpinButtons,
um den Namen des Tabellenblattes 1 mit den veränderten Namen aus Zelle X2 zu versehen.
Private Sub SpinButton1_SpinDown()
Dim Wert As String
'   Blattname aus Zelle X2 übernehmen
If Tabelle1.Range("X2")  "" Then
Wert = Tabelle1.Range("X2").Value
Tabelle1.Name = Wert
End If
End Sub

Private Sub SpinButton1_SpinUp()
Dim Wert As String
'   Blattname aus Zelle X2 übernehmen
If Tabelle1.Range("X2")  "" Then
Wert = Tabelle1.Range("X2").Value
Tabelle1.Name = Wert
End If
End Sub
Funktioniert auch einwandfrei.
Der Name des Tabellenblattes 2 soll dabei auch verändert werden können.
Von "Verzugszins Whn 1" bis "Verzugszins Whn 52".
Ich habe im Tabellenblatt 2 die Zelle AG5 mit den Text "Verzugszins Whn" und füge über Verknüpfung
vom Tabellenblatt 1 die jeweiligen Ziffern bzw Zahlen an.
Mit dem Verändern des Textes in Zelle AG5 funktioniert es aber nicht, dass Makro vom Tabellenblatt 2
auszuführen.
Private Sub Worksheet_Change(ByVal Target As Range)
'Der Text, der in Zelle AG5 eingegeben ist, wird automatisch als
'Tabellenblattname verwendet und das Tabellenblatt entsprechende benannt
'Fehleingaben werden abgefangen
If Not Application.Intersect(Target, Range("AG5")) Is Nothing Then
On Error GoTo Fehlermeldung
If Target = "" Then Exit Sub
ActiveSheet.Name = Range("AG5").Text
End If
Exit Sub
Fehlermeldung:
MsgBox "Es wurden ungültige Zeichen erfasst!"
End Sub
Das Verändern des Textes in der Zelle AG5 wird als Ereignis nicht erkannt.
Wie könnte der Name des Tabellenblattes 2 vom Tabellenblatt 1 verändert werden?
Für evtl. Tipps oder Anregungen schon mal besten Dank!
Schöne Grüße
Werner

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blattname mit VBA ändern
14.02.2013 19:30:05
Uduuh
Hallo,
bau das doch einfach in die SpinButtons mit ein.
Private Sub SpinButton1_SpinDown()
Dim Wert As String
'   Blattname aus Zelle X2 übernehmen
If Tabelle1.Range("X2")  "" Then
Wert = Tabelle1.Range("X2").Value
Tabelle1.Name = Wert
with Sheets(2)
.Name=.Range("AG5")
End With
End If
End Sub
Gruß aus’m Pott
Udo

Anzeige
AW: Blattname mit VBA ändern
14.02.2013 22:21:53
Golem
Hallo Udo,
ich sitze schon einen halben Tag daran, aus meinen eingeschlagenen Weg
eine funktionierende Lösung zu erstellen. Ich habe andere Wege nicht mehr erkannt.
Dein Vorschlag ist natürlich optimal und sehr einfach. Du hast mir sehr geholfen!
Schönen Dank für Deinen Tipp und
schöne Grüße
Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Blattnamen in Excel mit VBA ändern


Schritt-für-Schritt-Anleitung

Um den Namen eines Excel-Tabellenblattes automatisch zu ändern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, die zeigt, wie Du den Blattnamen aus einer Zelle übernehmen kannst.

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Suche das Tabellenblatt, dessen Namen Du ändern möchtest, im Projekt-Explorer.
  3. Füge den folgenden Code in das entsprechende Modul ein:
Private Sub SpinButton1_SpinDown()
    Dim Wert As String
    ' Blattname aus Zelle X2 übernehmen
    If Tabelle1.Range("X2") <> "" Then
        Wert = Tabelle1.Range("X2").Value
        Tabelle1.Name = Wert
        ' Zusätzlich den Namen des zweiten Tabellenblattes ändern
        With Sheets(2)
            .Name = .Range("AG5")
        End With
    End If
End Sub
  1. Schließe den VBA-Editor und speichere Deine Änderungen.
  2. Teste den SpinButton, um sicherzustellen, dass der Blattname automatisch geändert wird.

Häufige Fehler und Lösungen

  • Fehler: "Ungültige Zeichen" beim Umbenennen

    • Lösung: Stelle sicher, dass der neue Name keine ungültigen Zeichen (wie /, \, ?, *, [ oder ]) enthält. Du kannst im VBA-Code eine Fehlerbehandlung einfügen, um ungültige Eingaben abzufangen.
  • Problem: Der Blattname wird nicht geändert

    • Lösung: Überprüfe, ob der SpinButton korrekt mit dem Code verknüpft ist und die Zelle, aus der der Name übernommen wird (z.B. X2), tatsächlich einen Wert enthält.

Alternative Methoden

Eine alternative Methode, um den Excel-Blattnamen automatisch zu ändern, ist die Verwendung eines Worksheet_Change-Ereignisses. Hier ist ein Beispiel:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("AG5")) Is Nothing Then
        On Error GoTo Fehlermeldung
        If Target = "" Then Exit Sub
        ActiveSheet.Name = Range("AG5").Text
    End If
    Exit Sub
Fehlermeldung:
    MsgBox "Es wurden ungültige Zeichen erfasst!"
End Sub

Mit dieser Methode kannst Du den Namen des Tabellenblattes automatisch ändern, wenn Du den Inhalt einer bestimmten Zelle (AG5) änderst.


Praktische Beispiele

  1. Blattname aus einer Zelle übernehmen

    • Wenn Du in Zelle X2 den Text "Januar 2023" eingibst, wird das Tabellenblatt bei Verwendung des SpinButton automatisch in "Januar 2023" umbenannt.
  2. Verzugszins-Blattname anpassen

    • Wenn Du in Zelle AG5 den Text "Verzugszins Whn 1" eingibst, ändert sich der Name des zweiten Tabellenblattes automatisch, sofern der Code korrekt implementiert ist.

Tipps für Profis

  • Vermeide es, Blattnamen zu verwenden, die bereits existieren, um Laufzeitfehler zu vermeiden.
  • Füge eine Benutzeroberfläche hinzu, um die Eingabe zu erleichtern, z.B. ein Eingabefeld oder Dropdown-Menü für die Auswahl des neuen Blattnamens.
  • Du kannst auch den Namen des Tabellenblattes basierend auf dem aktuellen Datum oder anderen dynamischen Daten erstellen.

FAQ: Häufige Fragen

1. Wie kann ich den Namen des Tabellenblattes aus einer Zelle übernehmen?
Du kannst dies mit VBA tun, indem Du den Inhalt der Zelle in einer Subroutine verwendest, wie im obigen Code gezeigt.

2. Was passiert, wenn ich einen ungültigen Namen eingebe?
Wenn Du einen ungültigen Namen eingibst, wird der VBA-Code eine Fehlermeldung ausgeben. Es ist wichtig, die Eingaben zu validieren, um solche Fehler zu vermeiden.

3. Ist es möglich, mehrere Blattnamen gleichzeitig zu ändern?
Ja, Du kannst den VBA-Code anpassen, um mehrere Blattnamen auf einmal zu ändern, indem Du weitere Sheets-Referenzen hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige