Office: Tabellenblatt automatisch benennen nach Zelleninhalt

Helfe beim Thema Tabellenblatt automatisch benennen nach Zelleninhalt in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Excel-Profis, ist es möglich, über ein Macro oder ähnliches den Tabellenblatt-Namen zu ändern bei z.B. dem nächsten Öffnen der Datei oder sofort... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Videoli, 2. Januar 2015.

  1. Videoli Neuer User

    Tabellenblatt automatisch benennen nach Zelleninhalt


    Hallo Excel-Profis,

    ist es möglich, über ein Macro oder ähnliches den Tabellenblatt-Namen zu ändern bei z.B. dem nächsten Öffnen der Datei oder sofort bei Änderung einer Zelle?

    Ich hoffe, jemand kennt eine Lösung :-)

    Achja, Excel 2013
     
    Zuletzt bearbeitet: 2. Januar 2015
    Videoli, 2. Januar 2015
    #1
  2. schatzi Super-Moderator
    Hallo!

    Ja, das ist möglch:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$3" Then
    On Error Resume Next
    ActiveSheet.Name = Range("C3")
    End If
    End Sub
     
    schatzi, 2. Januar 2015
    #2
  3. Videoli Neuer User
    Hallo Schatzi,

    Danke für die schnelle Antwort.

    Bei mir kommt die Fehlermeldung "Argument ist nicht optional"...

    Ich hab auch die Zelle schon geändert, darf in der Zelle dann kein Verweis stehen? Ich bin absoluter Beginner was Macros betrifft...
     
    Zuletzt bearbeitet: 2. Januar 2015
    Videoli, 2. Januar 2015
    #3
  4. schatzi Super-Moderator

    Tabellenblatt automatisch benennen nach Zelleninhalt

    Hallo!

    Mein Code läuft, wenn in der Zelle C3 manuell ein Eintrag getätigt wird.
    Wenn in der Zelle eine Formel steht, dann könnte ein Calculate-Ereignis evtl. passender sein, aber das ist per Ferndiagnose nur schwer zu beantworten.
     
    schatzi, 2. Januar 2015
    #4
  5. Exl121150 Erfahrener User
    Hallo,

    @Videoli:
    1a) Dieses Makro von Schatzi musst du zwingend in das Codemodul desjenigen Arbeitsblattes, in dem du die gewünschte Arbeitsblattumbenennung haben willst, speichern.
    1b) Am einfachsten und sichersten ist dieses Codemodul erreichbar, wenn du einen Rechtsklick auf den Tabulator des Arbeitsblattes, für das Punkt 1a) gelten soll, machst und dann aus der Liste (Kontextmenü) den Befehl "Code anzeigen" auswählst. Dann gelangst du ins richtige Codemodul.
    2a) Du darfst die erste Zeile dieses Makros keinesfalls irgendwie ändern, zB. indem du Namen oder Datentypen änderst. Die Fehlermeldung "Argument ist nicht optional" deutet darauf hin, dass du irgendwo - den genauen Ort hast du uns leider nicht mitgeteilt - eine Funktion/Prozedur verwendest, der du weniger Parameter (=Argumente) übergibst, als zwingend vorgeschrieben wären.
    2b) Du darfst das Makro zB. nicht in das Codemodul für die Arbeitsmappe ("DieseArbeitsmappe" bzw. "ThisWorkbook") speichern und dort womöglich die erste Zeile abändern (Man kann es schon tun, nur muss man wissen, was man dann tut !!)

    @Schatzi:
    Mit diesem Makro, so wie es ist, kann man "interessante" Nebeneffekte erzielen:
    1) Angenommen du hast 2 Arbeitsblätter mit Tabulatornamen "Blatt1" und "Blatt2". Für "Blatt1" möchtest du vorgenannte Blattumbenennung installieren. Deshalb speicherst du das Makro im Codemodul des Arbeitsblattes "Blatt1". Im Codemodul für "Blatt2" ist überhaupt kein Makro gespeichert, ebenso nicht in "DieseArbeitsmappe" oder in einem allgem. Codemodul.
    2) Du gehst ins "Blatt1", tippst in Zelle C3 einen neuen Namen ein, zB. "BlattNeu", ohne die ENTER-Taste zu drücken.
    3) Du klickst mit der Maus auf den Arbeitsblatttabulator von "Blatt2".
    4) Ergebnis der Aktion: Nicht "Blatt1" wird auf "BlattNeu" umbenannt, sondern "Blatt2" wird auf "BlattNeu" umbenannt !!
    5) Dieser Effekt wird durch das "ActiveSheet.Name" verursacht. Verwendet man folgenden Code:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$C$3" Then
        On Error Resume Next
        [COLOR="#FF0000"]Me[/COLOR].Name = Target.Value
      End If
    End Sub
    
    kann vorgenannter Effekt vermieden werden, wie du dich leicht überzeugen kannst.
     
    Zuletzt bearbeitet: 3. Januar 2015
    Exl121150, 3. Januar 2015
    #5
  6. Videoli Neuer User
    Hi, tatsächlich weiß ich in dem Bereich überhaupt nicht, was ich tu...

    https://www.dropbox.com/sh/bhhryz32g0z0c8f/AAAgWMYSkhWfIGhORn-25dufa?dl=0

    Ich hab mal nen Dropbox-Link zu der Datei reingehängt, im Prinzip gehts drum, daß in dem Zeiterfassungs-Bogen die Blätter die eingetragene Kalenderwoche als Namen tragen, d.h. Je nach Mitarbeiter gibts dann eben Dateien mit mehr oder weniger Blättern. Jetzt ist der KW-Eintrag allerdings ein Dropdown-Menu. Vielleicht habt Ihr ja Lust, mir da weiterzuhelfen...
     
    Videoli, 4. Januar 2015
    #6
  7. hannes_85 Neuer User
    Wie müsste ich den Code verändern wenn ich z.B. 11 Arbeitsblätter habe und im ersten Arbeitsblatt in A1 - A10 sollen die Namen stehen nach denen die weiteren 10 Arbeitsblätter umbenannt werden sollen?
     
    hannes_85, 16. Januar 2017
    #7
  8. Exl121150 Erfahrener User

    Tabellenblatt automatisch benennen nach Zelleninhalt

    Hallo Hannes,

    Code:
    Option Explicit
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim Nr As Integer
      Dim RgBlatt As Range
      Dim RgAuswahl As Range
      
      On Error GoTo Err_Sheet_New
      Set RgBlatt = Range("A1:A10")   '<-- Zellbereich mit den Blattnamen
      Set RgAuswahl = Range("A11")    '<-- Zellbereich zum Auslösen der Blätter-Erzeugung/Umbenennung
      
      If IstImBereich(Target, RgAuswahl) Then
        For Nr = 1 To RgBlatt.Cells.Count
          Worksheets(Nr + 1).Name = RgBlatt(Nr).Value
        Next Nr
        Me.Activate
      End If
      Exit Sub
      
    Err_Sheet_New:
      If Err.Number = 9 Then  '9 = Index außerhalb des gültigen Bereichs
        'Ein neues Arbeitsblatt wird ein- bzw. angefügt (Tabellenreiter nach der "Nr". Position)
        Sheets.Add After:=Worksheets(Nr), Type:=xlWorksheet
        Resume
      End If
      
    End Sub
    '
    'Wenn "Zelle" aus 1 Zelle besteht und im Zellbereich "Bereich" liegt,
    'gibt diese Funktion "True" zurück, sonst "False":
    Function IstImBereich(Zelle As Range, Bereich As Range) As Boolean
      IstImBereich = False
      If Zelle.Cells.Count <> 1 Then Exit Function
      With Bereich
        If .Row <= Zelle.Row And Zelle.Row < .Row + .Rows.Count Then
          IstImBereich = (.Column <= Zelle.Column) And (Zelle.Column < .Column + .Columns.Count)
        End If
      End With
    End Function
    
    Dieser VBA-Code geht von 2 Zellbereichen aus:
    1) Zellbereich, der die 10 Blattnamen enthält; im Makro oben der Bereich A1:A10.
    2) Zellbereich, der dazu bestimmt ist, die Blattnamensaktualisierung (und eventuell auch Blatterzeugung) auszulösen, sobald die aktive Zelle in diesen Bereich verschoben wird; im Makro oben die Zelle A11.
    Beide Bereiche sind im Makro durch Kommentarpfeile speziell gekennzeichnet und können - falls nötig - auch abgeändert werden.

    Dieses Makro oben ist in das Codemodul desjenigen Arbeitsblattes zu kopieren, das den Bereich mit den 10 Blattnamen enthält (Arbeitsblatt mit der Nummer 1 !!).
     
    Zuletzt bearbeitet: 17. Januar 2017
    Exl121150, 17. Januar 2017
    #8
  9. hannes_85 Neuer User
    Perfekt - Das nenne ich mal schnelle und professionelle Hilfe! Vielen Dank!
     
    hannes_85, 24. Januar 2017
    #9
Thema:

Tabellenblatt automatisch benennen nach Zelleninhalt

Die Seite wird geladen...
  1. Tabellenblatt automatisch benennen nach Zelleninhalt - Similar Threads - Tabellenblatt automatisch benennen

  2. Automatisches Kopieren aus Tabelle in anderes Tabellenblatt

    in Microsoft Excel Hilfe
    Automatisches Kopieren aus Tabelle in anderes Tabellenblatt: Hi liebes Forum, ich habe folgende Frage/Problemstellung: Ich habe eine Exceldatei, die aus vielen verschiedenen Blättern besteht. Für jedes Projekt ein Blatt (alle sind gleich aufgebaut). Jetzt...
  3. Verknüpfung mit verschiedenen Tabellenblättern automatisch herstellen

    in Microsoft Excel Hilfe
    Verknüpfung mit verschiedenen Tabellenblättern automatisch herstellen: Hallo zusammen, ich würde gerne eine Verknüpfung auf einem Deckblatt mit immer derselben Zelle auf verschiedenen Tabellenblättern herstellen ohne dies händisch zu machen. Gibt es eine Formel, mit...
  4. Hyperlink VBA / Automatische Ergänzung

    in Microsoft Excel Hilfe
    Hyperlink VBA / Automatische Ergänzung: Guten Tag zusammen, ich habe folgendes Problem: Ich habe eine Datei mit insgesamt ca 50. Tabellenblättern. Auf dem Tabellenblatt Tabelle 1 ist die Gesamtübersicht mit allen Gesellschaften,...
  5. Tabellenblätter automatisch erstellen und ausfüllen

    in Microsoft Excel Hilfe
    Tabellenblätter automatisch erstellen und ausfüllen: Hallo, ich möchte folgendes mit VBA lösen. Ich habe ein Tabellenblatt das nennt sich "Kundendaten" in der Spalte M2 bis M32 steht ein Datum, es sollen aus einem Tabellenblatt "Muster" neue...
  6. Tabelle soll autom. um Inhalte aus anderem Tabellenblatt erweitert werden

    in Microsoft Excel Hilfe
    Tabelle soll autom. um Inhalte aus anderem Tabellenblatt erweitert werden: Hallo zusammen, ich soll eine Übersicht über verschiedene Aufträge darstellen. Dabei soll die Übersicht alle Aufträge und die dazugehörenden Informationen automatisch aus anderen Tabelleblättern...
  7. Zellbezug beim Kopieren von einem Tabellenblatt automatisch anpassen

    in Microsoft Excel Hilfe
    Zellbezug beim Kopieren von einem Tabellenblatt automatisch anpassen: Ich suche eine Lösung für folgendes Problem: Ich kopiere ein Tabellenblatt in eine andere Datei. In der Zieldatei verweisen die Zellbezüge auf die Zellen in der Ursprungsdatei. Gibt es eine...
  8. Zellen im 2. Tabellenblatt automatisch "anzeigen", wenn Kriterium erfüllt

    in Microsoft Excel Hilfe
    Zellen im 2. Tabellenblatt automatisch "anzeigen", wenn Kriterium erfüllt: Hallo zusammen, ich habe folgende Herausforderung: im 1. Tabellenblatt habe ich in einer Zeile zunächst einen Nachnamen geschrieben und anschließend in der gleichen Zeile ein Kriterium per...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden