HERBERS Excel-Forum - das Archiv

Thema: Pivot per VBA - Pivot Name variabel gestalten

Pivot per VBA - Pivot Name variabel gestalten
Fiodaria
Hallo,

ich schon wieder :-)

Mit meinen mangelhaften VBA Kenntnissen, versuche ich anhand von Forums Beiträgen mein Anliegen zu lösen. Habe schon sehr viel gesucht und probiert, aber es klappt doch nicht so.

Mein Anliegen:
In der angehangenen Beispieldatei gibt es das Tabellenblatt "Beispiel1" aus der eine Pivot-Tabelle erstellt werden soll.
Ich zeichne die Erstellung der Pivot Tabelle einmalig als Makro auf. Nun ist bei der ersten Ausführung des Makros der Pivot Tabellenname "Tabelle1"
Würde man das Makro erneut aufrufen, würde er ein neues Blatt mit Namen "Tabelle2" erstellen und das Makro läuft daher auf einen Fehler.

Um hier das lange Makro nicht so unformatiert einzufügen, habe ich es auch in der Beispieldatei im Tabellenblatt "Makro" eingetragen

Vielen Dank schon mal für Hilfe.

LG Fio

P.S. Wie kann ich das Makro denn so schick einfügen, wie ihr das immer macht - so mit dem schwarzen Hintergrund usw?

https://www.herber.de/bbs/user/168738.xlsx
AW: Pivot per VBA - Pivot Name variabel gestalten
Yal
Hallo Fiodara,

eigentlich reicht es, wenn Du bei der Herstellung der Pivot keine Name vorgibt, dann wird einen Default-Name vergeben.
Du musst nur bei der Herstellung oder Festlegung von Objekte, diese einer Variable zuweisen (rngQuelle, Sh, PT), um diese wieder adressieren zu können.

Code werden mithilfe vom Schaltfläche "Code" (über die Beitrag-Edit-Fenster)

Sub Pivot_erstellen()

'
' Pivot_erstellen Makro
Dim rngQuelle As Range
Dim sh As Worksheet
Dim PivotName As String
Dim PT As PivotTable


Set rngQuelle = Worksheets("Beispiel1").Range("N2").CurrentRegion
Set sh = Worksheets.Add

Set PT = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:=rngQuelle, Version:=8).CreatePivotTable(TableDestination:=sh.Range("A3"))

sh.Select
Cells(3, 1).Select
With PT
With .PivotFields("Wochentag")
.Orientation = xlRowField
.Position = 1
End With
With .PivotFields("Datum")
.Orientation = xlRowField
.Position = 2
End With
With .PivotFields("Bereich2")
.Orientation = xlRowField
.Position = 3
End With
.AddDataField .PivotFields("Netto"), "Summe von Netto", xlSum
With .PivotFields("Schicht")
.Orientation = xlColumnField
.Position = 1
End With
With .PivotFields("Speisen/Getränke")
.Orientation = xlColumnField
.Position = 2
End With
.DataFields("Summe von Netto").NumberFormat = "#,##0.00"
End With
Range("C:C,F:F").EntireColumn.Hidden = True
Range("A1").Select
End Sub


VG
Yal
AW: Pivot per VBA - Pivot Name variabel gestalten
Fiodaria
Einfach nur toll, wie man hier Hilfe bekommt.

Danke Danke
LG Fio