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)