Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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
Inhaltsverzeichnis

VBA Pivottabelle erstellen, Name ansteuern

VBA Pivottabelle erstellen, Name ansteuern
14.06.2017 21:18:27
Dennis24
Hallo,
nach langen Recherchen kann ich jetzt über PivotTableWizard aus einer Datentabelle heraus eine Pivottabelle per VBA erstellen. Allerdings schaffe ich es nicht die Pivot auf einem bestehende Tabellenblatt ("Test") ab Zelle A3 zu erzeugen.
Dies ist Problem 1.
Umgangen habe ich es derzeit, dass ich die Pivot nach dem erstellen in das Tabellenblatt ("Test") verschiebe. Allerdings weist die Syntax PivotTable("PivotTable13") auf und das Tabellenblatt steht mittlerweile bei Tabelle22. Gibt es einen Code, mit dem ich die Pivottabelle oder das Tabellenblatt ansteuern kann? Die Zahlen werden von Excel nach jeder Prozedur neu vergeben.
Vielen Dank im Voraus

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Pivottabelle erstellen, Name ansteuern
15.06.2017 14:06:20
Markus
Hallo Dennis24,
versuch doch mal alles mit dem Rekorder zu machen.
Rekorder starten und dann markieren, Tabelle erstellen direkt in „Test“ auf A3 dann glaub ich hast Du alles was Du willst, wenn ich Dich richtig verstanden habe.
Gruß
Markus
AW: VBA Pivottabelle erstellen, Name ansteuern
15.06.2017 21:44:27
Dennis24
Hallo Markus,
danke für den Hinweis. Hatte ich versucht, aber der Code lief dann beim ausführen auf eine Fehlermeldung. Die Grunddatentabelle hat unterschiedliche Zeilen und das klappt nicht mit dem aufgezeichneten Code. Deshalb hatte ich die Lösung mit dem PivotTableWizard genommen. Das Erstellen der Pivot klappt prima und zuverlässig. Nur kann ich daran nichts mehr per VBA ändern, da ich weder das Tabellenblatt noch die Pivot ansteuern kann.
Hast Du noch ne andere Idee?
Gruß Dennis
Anzeige
AW: VBA Pivottabelle erstellen, Name ansteuern
15.06.2017 22:05:41
Markus
Hallo,
kannst Du die Datei hochladen?
Gruß
Markus
AW: VBA Pivottabelle erstellen, Name ansteuern
15.06.2017 22:55:38
Dennis24
Hallo,
mit der Datei wird schwierig. Ich kann aber die beiden Codes hochladen. Die Grundtabelle ist einfach. Ich brauche Spalte B als Zeilenwert im Pivot und Spalten K und L sollen summiert im Wetrtebereich stehen.
Mit dem Rekorder habe ich golgenden Code aufgezeichnet:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Grunddaten!R1C1:R" & loletzte & "C13", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Ergebnis!R3C1", TableName:="PivotTable3", _
DefaultVersion:=xlPivotTableVersion15
Sheets("Ergebnis").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable3").PivotFields("SpalteB")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("SpalteK"), "Summe von SpalteK", xlSum
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Summe von SpalteK")
.Caption = "NeuerNameK"
.NumberFormat = "#.##0"
End With
ActiveSheet.PivotTables("PivotTable3").AddDataField ActiveSheet.PivotTables( _
"PivotTable3").PivotFields("SpalteL"), "Summe von SpalteL", xlSum
With ActiveSheet.PivotTables("PivotTable3").PivotFields("Summe von SpalteL")
.Caption = "NeuerNameL"
.NumberFormat = "#.##0"
End With
---------------
loletzte ist eine Variable, die ich gesetzt habe, damit das Pivot auf die unterschiedliche Zeilenzahl der Grundtabelle reagiert. Der Code funktionierte zunächst. Nachdem ich die Datei dann morgens wieder geöffnet hatte, hatte ich eine Fehlermeldung und das Programm stoppte genau zu Beginn diese Codes.
Deshalb hatte ich diesen Code entwickelt:
Dim objTable As PivotTable, objField As PivotField
ActiveWorkbook.Sheets("Grunddaten").Select
Range("A1").Select
Set objTable = Tabelle2.PivotTableWizard
Set objField = objTable.PivotFields("SpalteB")
objField.Orientation = xlRowField
Set objField = objTable.PivotFields("SpalteK")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.Caption = "NeuerNameK"
objField.NumberFormat = "#,##0"
Set objField = objTable.PivotFields("SpalteL")
objField.Orientation = xlDataField
objField.Function = xlSum
objField.Caption = "NeuerNameL"
objField.NumberFormat = "#,##0"
---------------------
Dieser Code erstellt zuverlässig eine Pivottabelle, nur auf jeweils einem neuen Tabellenblatt. Außerdem kann ich keine Gruppierung in der Pivot machen, da ich sie nicht ansteuern kann (ActiveSheet.PivotTables("PivotTable1").PivotSelect) {der Ausdruck in den Anführungstrichen wird von Excel zwingend gebraucht}
Wo liegt mein Fehler?
Gruß Dennis
Anzeige
AW: VBA Pivottabelle erstellen, Name ansteuern
16.06.2017 11:06:02
Markus
Servus,
ohne die Datei ist es schwierig zu testen weil einiges fehlt, Tabellenblatt usw.
Der Name der Pivot ist auch nur Rätselraten.
Die Datei ohne Deine Werte usw. reicht beim hochladen auch.
Gruß
Markus

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige