Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
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
Tabellenblatt duplizieren und benennen
01.08.2022 20:40:31
XYZ
Hallo,
ich habe eine Arbeitsmappe, in der ein Tabellenblatt Vorlage angelegt ist. Jetzt würde ich gerne auf einem anderen Tabellenblatt Auswertung der Arbeitsmappe einen Button hinterlegen, bei dessen Betätigung
1. das Blatt Vorlage dupliziert wird
2. das neue (duplizierte) Arbeitsblatt einen Name erhält, der durch Eingabeaufforderung bei Betätigung des Button definiert wird.
Das wäre schonmal toll, wenn ihr mir hier einen Code geben könntet. :-)
Im Tabellenblatt Vorlage ist zudem eine intelligente Tabelle "enthalten". Kann man dem Button ggf. einen zusätzlichen Befehl geben, mit dessen Hilfe der neuen Tabelle im neuen, duplizierten Tabellenblatt ebenfalls ein vorher definierter Name gegeben wird (zBsp. 01, 02 ...)?
Vielen Dank vorab.
Viele Grüße
XYZ

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt duplizieren und benennen
01.08.2022 21:31:03
MCO
Hallo Cryptus!
Blatt kopieren:

sheets("Vorlage"). copy after:=sheets(sheets.count)
Blatt umbenennen

sheets(sheets.count).name = application.inputbox("neuer name","Namensvorschlag",vbokonly)
Sorry, ist aus dem Kopf, daher ungetestet...
Viel Erfolg!
MCO
AW: Tabellenblatt duplizieren und benennen
01.08.2022 22:17:09
XYZ
Vielen Dank. Probiere ich aus. Evtl noch ein Vorschlag für pkt 3 (Umbenennung der Tabelle)?
Viele Grüße
XYZ
AW: Tabellenblatt duplizieren und benennen
01.08.2022 22:38:30
Rudi

sheets(sheets.count).listobjects(1).name = application.inputbox("neuer name","Namensvorschlag",vbokonly)
Gruß
Rudi
Anzeige
AW: Tabellenblatt duplizieren und benennen
02.08.2022 13:57:02
XYZ
Der Code funktioniert super. Vielen Dank.
Kann man statt einer 2. Abfrage (Eingabe des Tabellennamens) auch den Namen aus der 1. Abfrage (Name des Tabellenblatts) nehmen für die Benennung der im neuen Blatt enthaltenen Tabelle? Dh in Schritt 1 wird öffnet sich ein Fenster zur Eingabe des Blattnamens, der dann automatisch auch genommen wird zur Benennung der in diesem Blatt enthaltenen Tabelle?
Beste Grüße
XYZ
AW: Tabellenblatt duplizieren und benennen
03.08.2022 10:52:16
Rudi
jetzt mal komplett:

Sub VorlageKopieren()
Dim strName As String
strName = Application.InputBox("Tabellenname:", "Namen eingeben", , , , , , 2)
If strName  "Falsch" Then
Sheets("Vorlage").Copy after:=Sheets(Sheets.Count)
With Sheets(Sheets.Count)
.Name = strName
.ListObjects(1).Name = strName
End With
End If
End Sub
Gruß
Rudi
Anzeige
AW: Tabellenblatt duplizieren und benennen
05.08.2022 09:44:57
XYZ
Guten Morgen,
vielen Dank für die Zusammenfassung. Das Kopieren des Vorlageblatts klappt sehr gut. Besten Dank. Ich habe jedoch folgendes Problem:
Im Tabellenblatt „Vorlage“ sind insgesamt 3 intelligente Tabellen sowie 2 kleine Pivot-Auswertungstabellen. Die Pivots haben als Datenquelle eine der 3 intelligenten Tabellen.
Wenn ich jetzt das Tabellenblatt „Vorlage“ kopiere, verweist die Datenquelle der Pivots im kopierten Blatt weiterhin auf die Tabelle in der Vorlage. Daher meine Frage, kann man die Vorlage so kopieren, dass das kopierte Blatt als „eigenständige“ Kopie arbeitet (d.h. keine Referenzen auf die Vorlage mehr hat)? Aktuell heißen die Tabellen in der Vorlage wie folgt:
Namen der Intelligente Tabellen
Tab_Vorlage_1
Tab_Vorlage_2
Tab_Vorlage_3
Namen der Pivots
Pivot_Vorlage_1 (Datenquelle Tab_Vorlage_1)
Pivot_Vorlage_2 (Datenquelle Tab_Vorlage_1)
Ich stell mir das so vor, dass im kopierten Blatt die Namen der Tabellen dann von „Vorlage“ entsprechend auf „Kopie 1“, „Kopie2“ usw. umbenannt werden und die Datenquelle der Pivot dann „mitwandert“. Geht das?
Zudem habe ich noch 2 weitere Fragen:
  • Kann die Farbe des neu kopierten Blattes beim kopieren auf die Farbe rot gesetzt werden?

  • In der Tabelle „Tab_Vorlage_1“ ist ein Autofilter gesetzt. Gibt es einen VBA-Code, der den Autofilter im aktuellen Blatt automatisch aktualisiert, wenn Änderungen der zugrundeliegenden Daten erfolgen?

  • Vielen Dank vorab und sorry für das scheibchenweise Nachreichen von Fragen…
    Beste Grüße
    XYZ
    Anzeige
    AW: Tabellenblatt duplizieren und benennen
    05.08.2022 10:33:28
    Rudi
    
      With Sheets(Sheets.Count)
    .Tab.Color = vbRed         'Tab rot
    .ListObjects(1).Name = "tab_Kopie_1"
    .PivotTables(1).ChangePivotCache _
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=ActiveSheet.ListObjects(1).Name, _
    Version:=8)
    .ListObjects(2).Name = "tab_Kopie_2"
    .PivotTables(2).ChangePivotCache _
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=ActiveSheet.ListObjects(2).Name, _
    Version:=8)
    End With
    

    AW: Tabellenblatt duplizieren und benennen
    05.08.2022 15:47:55
    XYZ
    Das funktioniert leider nicht. Die Ausführung des Codes wird mit "Laufzeitfehler 5" abgebrochen. Die Datenquelle bei den Pivots der Blattkopie verweist weiterhin auf die Vorlage. Beim Debuggen wird der Teil des Codes gelb markiert:
    
     .PivotTables(1).ChangePivotCache _
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=ActiveSheet.ListObjects(1).Name, _
    Version:=8)
    
    So sieht der Code jetzt komplett aus:
    
    Sub VorlageKopieren()
    Dim strName As String
    strName = Application.InputBox("Tabellenname:", "Namen eingeben", , , , , , 2)
    If strName  "Falsch" Then
    Sheets("Vorlage").Copy after:=Sheets(Sheets.Count)
    With Sheets(Sheets.Count)
    .Name = strName
    .ListObjects(1).Name = strName
    End With
    End If
    With Sheets(Sheets.Count)
    .Tab.Color = vbRed         'Tab rot
    .ListObjects(1).Name = "tab_Kopie_1"
    .PivotTables(1).ChangePivotCache _
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=ActiveSheet.ListObjects(1).Name, _
    Version:=8)
    .ListObjects(2).Name = "tab_Kopie_2"
    .PivotTables(2).ChangePivotCache _
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=ActiveSheet.ListObjects(2).Name, _
    Version:=8)
    End With
    End Sub
    
    Für mein laienhaftes Verständnis, müssten die Namen in der Blattkopie nicht "relativ" definiert werden. Es sollen in der Arbeitsdatei ja mehrere Kopien der Vorlage erstellt werden.
    Also so in der Vorlage:
    Namen der Intelligente Tabellen
  • Tab_Vorlage_1

  • Tab_Vorlage_2

  • Tab_Vorlage_3

  • Namen der Pivots
  • Pivot_Vorlage_1 (Datenquelle: Tab_Vorlage_1)

  • Pivot_Vorlage_2 (Datenquelle: Tab_Vorlage_1)

  • So in Kopie 1:
    Namen der Intelligente Tabellen
  • Tab_ Kopie01_1

  • Tab_ Kopie01_2

  • Tab_ Kopie01_3

  • Namen der Pivots
  • Pivot_ Kopie01_1 (Datenquelle: Tab_Kopie01_1)

  • Pivot_ Kopie01_2 (Datenquelle: Tab_Kopie01_1)

  • So in Kopie 2 (usw):
    Namen der Intelligente Tabellen
  • Tab_ Kopie02_1

  • Tab_ Kopie02_2

  • Tab_ Kopie02_3

  • Namen der Pivots
  • Pivot_ Kopie02_1 (Datenquelle: Tab_Kopie02_1)

  • Pivot_ Kopie02_2 (Datenquelle: Tab_Kopie02_1)

  • Anzeige
    AW: Tabellenblatt duplizieren und benennen
    07.08.2022 18:18:30
    XYZ
    Hat noch jemand eine Idee? Wichtig wäre mir insbesondere, das die Datenquellen der Pivot Tabellen im kopierten Arbeitsblatt "mitziehen" und ggf. ein Code, dass der Autofilter automatisch aktualisiert.
    Viele Grüße
    XYZ
    AW: Tabellenblatt duplizieren und benennen
    09.08.2022 10:54:05
    XYZ
    Hallo nochmal,
    hat jemand noch eine Idee wie ich den "Umzug" der Datenquelle für die Pivottabellen hinbekomme sowie den Autofilter der Tabellen im Blatt automatisch aktualisieren lasse? Hab trotz langer Suche bisher nichts finden können.
    Viele Grüße

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige