Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Tabellenname ändern

VBA - Tabellenname ändern
12.01.2018 08:06:38
Tobias
Hallo liebes Forum,
zunächst einmal ein wirklich GROßES Danke!! Jede VBA-Frage die ich gegooglet habe, habt ihr mir beantwortet, dank euch ist mein Projekt was geworden! DANKE DAFÜR!!!
Nun zu meiner Frage, die ich in dieser Form leider nur "ähnlich" per SuFu gefunden habe. Leider reichen meine Kenntnisse nicht aus, um die in dem Beitrag gegebene Antwort zu abstrahieren.
Folgendes: Ich lasse per Userform eine "Vorlage" kopieren, und die neue Tabelle ausfüllen. Anschließend soll der Tabellenname in "Inhalt C1" + "Leerzeichen" + "Inhalt M3" + "Lerrzeichen und heutiges Datum" geändert werden.
In C1 soll ein Kundenname Stehen, also reiner Text. M3 soll den Maschinentypen beschreiben, welche sich i.d.R. aus Buchstaben + Zahlen (+ ggf. weitere Buchstaben) besteht. Beispiel: XY345Z
Mein Code schafft bisher folgendes: Neuer Name = "Inhalt C1" + "Leerzeichen" + "Leerzeichen + heutiges Datum".
Könnt ihr ersehen wo mein Fehler ist?
Hier der Code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" Or Target.Address = "$M$3" Then
On Error Resume Next
Sheets("Neu").Name = Range("C1") & " " & Range("M3").Value & Format(Now, " dd.mm.yy")
End If
[...]
Bei Or Target.Address = "$M"3" bin ich mir schon nicht sicher :s....
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Tabellenname ändern
12.01.2018 09:00:38
UweD
Hallo
bei mir läuft der Code korrekt;
es muss aber ein Blatt mit dem Namen "Neu" vorhanden sein.
dadurch dass du On Error Resume Next gesetzt hast, fällt der Fehler nicht auf, falls das Blatt so ggf. nicht vorhanden ist.
LG UweD
AW: VBA - Tabellenname ändern
12.01.2018 09:14:14
Tobias
Danke für Deine Antwort.
Die Vorlage wird per Schaltfläche kopiert und in "Neu" umbenannt, anschließend öffnet sich die UserForm. Wenn die Userform ausgefüllt und geschlossen wird, werden die Werte in die entsprechenden Zellen gecshrieben,das Tabellenblatt umbenannt, allerdings wird Zelleninhalt "M3" nicht übernommen.... Inhalt von C1 und auch das "Leerzeichen" und das "Leerzeichen + Datum" wird eingefügt, M3 wird allerdings "ignoriert"....
Hast Du irgendeine Idee warum dies sein könnte?
Habe soeben auch noch etwas getestet:
Hier ein Teilcode meiner UserForm:
Private Sub CommandButton_Daten_Click()
If TextBox_Kunde = "" Then
MsgBox "Unbedingt Kunden eintragen!", 48
TextBox_Kunde.SetFocus
Else:
ActiveSheet.Range("C1").Value = TextBox_Kunde.Value
ActiveSheet.Range("M1").Value = TextBox_Ansprechpartner.Value
ActiveSheet.Range("C2").Value = TextBox_Niederlassung.Value
ActiveSheet.Range("M2").Value = TextBox_Rufnummer.Value
ActiveSheet.Range("C3").Value = TextBox_Seriennummer.Value
ActiveSheet.Range("M3").Value = TextBox_Maschinentyp.Value
ActiveSheet.Range("H6").Value = ComboBox_MA.Value
ActiveSheet.Range("H7").Value = TextBox_Auftragsnummer.Value
ActiveSheet.Range("B11").Value = TextBox_Notizen.Value
[...]
Wenn ich nun "ActiveSheet.Range("M3").Value = TextBox_Maschinentyp.Value" in die erste Zeile nach dem Else schiebe (vor ...("C1")), dann wird die Neue Tabelle in "Leerzeichen" + "M3" + "Leerzeichen + Datum" umbenannt und C1 ignoriert....
Sorry fürs umständliche Formulieren... Falls mehr von dem Code benötigt wird, einfach bescheid sagen.
Anzeige
AW: VBA - Tabellenname ändern
12.01.2018 09:15:12
Tobias
/Edit: Frage noch offen.
AW: VBA - Tabellenname ändern
12.01.2018 09:48:20
UweD
Hallo nochmal
Bei ActiveSheet.Range("C1").Value = TextBox_Kunde.Value wird die Zelle C1 ja geändert.
Dadurch läuft das change_event das erste mal ab und der Blattname wird schon von NEU in den bis dahin bekannten Text geändert.
Wenn dann weiter unten mit ActiveSheet.Range("M3").Value = TextBox_Maschinentyp.Value
die Zelle M3 geändert wird, läuft das change_event erneut ab.
Da existiert das Blatt Neu aber schon nicht mehr. Durch die Fehlerbehandlung fällt das im Code nicht auf.
Du musst also vorher mit Application.EnableEvents=false ausschalten und vor M3-Änderung wieder einschalten.


Warum nutzt du überhaupt das change_event ?
Mach die Umbenennung doch direkt im Hauptmakro.
LG UweD
Anzeige
AW: VBA - Tabellenname ändern
12.01.2018 11:42:42
UweD
Hallo
du kannst natürlich auch im change_event den altennamen explizit weglassen
so...
Me.Name = Range("C1") & " " & Range("M3").Value & Format(Now, " dd.mm.yy")
dann ist es egal, wie das Blatt heisst
LG UweD
AW: VBA - Tabellenname ändern
12.01.2018 11:54:05
Tobias
Hallo UweD,
DANKE für deine Erklärung. Warum ich das Change-event nutze? Ehrlich gesagt: keine Ahnung, aber es funktioniert.....
Die Lösung mit Me.Name = .... hat super funktioniert! ich danke euch MAL WIEDER!!!!
Anzeige
Prima! Danke für die Rückmeldung. owT
12.01.2018 12:05:10
UweD
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenname in Excel mit VBA ändern


Schritt-für-Schritt-Anleitung

Um den Tabellenname in Excel mit VBA zu ändern, folge diesen Schritten:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Erstelle eine UserForm mit den benötigten TextBoxen. In diesem Beispiel benötigst du TextBox_Kunde und TextBox_Maschinentyp.
  3. Füge den folgenden Code in das Modul deiner UserForm ein:

    Private Sub CommandButton_Daten_Click()
       If TextBox_Kunde.Value = "" Then
           MsgBox "Unbedingt Kunden eintragen!", vbExclamation
           TextBox_Kunde.SetFocus
           Exit Sub
       End If
    
       ' Werte in die Zellen schreiben
       ActiveSheet.Range("C1").Value = TextBox_Kunde.Value
       ActiveSheet.Range("M3").Value = TextBox_Maschinentyp.Value
    
       ' Tabellenname ändern
       Application.EnableEvents = False
       On Error Resume Next
       ActiveSheet.Name = Range("C1").Value & " " & Range("M3").Value & " " & Format(Now, "dd.mm.yy")
       Application.EnableEvents = True
    End Sub
  4. Stelle sicher, dass das Tabellenblatt mit dem Namen "Neu" existiert, bevor du den Code ausführst.

Häufige Fehler und Lösungen

  • Problem: Die Zelle M3 wird nicht beachtet.

    • Lösung: Achte darauf, dass der Code die Zelle M3 korrekt ansteuert. Überprüfe, ob die Zelle richtig beschrieben wird, bevor der Tabellenname geändert wird.
  • Problem: Fehler beim Umbenennen des Blattes.

    • Lösung: Stelle sicher, dass das Blatt mit dem Namen "Neu" existiert. Verwende On Error Resume Next, um Fehler zu ignorieren, aber sei vorsichtig, dass dies nicht zu ungewollten Ergebnissen führt.

Alternative Methoden

Wenn du den Tabellenname nicht über eine UserForm ändern möchtest, kannst du auch direkt im Arbeitsblatt arbeiten. Hier ist ein Beispiel:

Sub TabellennameAendern()
    Dim neuerName As String
    neuerName = ActiveSheet.Range("C1").Value & " " & ActiveSheet.Range("M3").Value & " " & Format(Now, "dd.mm.yy")
    On Error Resume Next
    ActiveSheet.Name = neuerName
End Sub

Diese Methode erlaubt es, den Tabellenname direkt aus einem Makro heraus zu ändern.


Praktische Beispiele

Nehmen wir an, du hast folgende Inhalte in den Zellen:

  • C1: "KundeA"
  • M3: "XY345Z"

Nach Ausführung des Codes wird der Tabellenname geändert zu:

KundeA XY345Z 12.10.2023

Achte darauf, dass das Datumsformat zu deinen Anforderungen passt.


Tipps für Profis

  • Nutze Application.EnableEvents = False, um die Ereignisse während der Änderung zu deaktivieren, um unnötige Endlosschleifen zu vermeiden.
  • Überlege, ob du das Change-Event wirklich benötigst. Oftmals ist es effizienter, die Umbenennung direkt im Hauptmakro vorzunehmen.
  • Wenn du häufig mit dem Excel Namenfeld arbeitest, überlege, eine Funktion zu erstellen, die den Tabellennamen automatisch anpasst, wenn sich die Inhalte ändern.

FAQ: Häufige Fragen

1. Wie kann ich den Zelleninhalt in den Tabellenname einfügen? Um den Zelleninhalt in den Tabellenname einzufügen, verwende den Code, der die Werte der Zellen zusammenfügt, wie im Schritt-für-Schritt-Abschnitt beschrieben.

2. Was passiert, wenn der vorgeschlagene Tabellenname bereits existiert? Wenn der Tabellenname bereits existiert, wird ein Fehler auftreten. Du kannst dies mit On Error Resume Next umgehen, um den Fehler zu ignorieren.

3. Wie kann ich Leerzeichen im Tabellenname vermeiden? Stelle sicher, dass du die Leerzeichen im Code korrekt angibst und dass die Zellen C1 und M3 nicht leer sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige