Hallo Zusammen,
ich sitze hier gerade vor einer recht umfangreichen Datenauswertung und habe mit Hilfe von Pivot Tabellen und den Charts eigendlich genau das zu Stande gebracht was ich haben wollte.
Jetzt wächst aber mein Datenbestand und hier liegt auch mein Problem. Wenn ich bei einem normalen Diagramm zusätzlich Daten aufnehme, kann ich die Data Range einfach nochmal erweitern.
Leider finde ich diese Möglichkeit bei den Pivottabellen nicht.
Ich habe also ein paar Zeilen dazu bekommen, möchte aber nicht die ganze Pivotauswertung erneut machen. Ist es irgendwo möglich zu sagen dass die Auswertung jetzt anstellle von Zeile 100 bis Zeile 150 gehen soll?
Schon mal Danke für die Tipps!
Gruß
Marc
Ich habe also ein paar Zeilen dazu bekommen, möchte aber nicht
die ganze Pivotauswertung erneut machen. Ist es irgendwo
möglich zu sagen dass die Auswertung jetzt anstellle von Zeile
100 bis Zeile 150 gehen soll?
Schon mal Danke für die Tipps!
Hi Marc,
kannst du mal Extras–makro–Aufzeichnen aktivieren, dann mal deine Pivotauswertung neu durchführen und dann hier den Code des Makros posten?
Wenn man das im Code evtl nichtz erkennt, mit Hinweis in welcher Spalte man anhand der Anzahl gefüllter Zellen die zeilenanzahl ermitteln kann.
Gruß
Reinhard
Hallo Marc,
normalerweise brauchst nur den Cursor in Pivottab setzen und über das Menu gehen: Daten und Daten aktualisieren! Dan sollten seine neuen Daten miteingebunden sein. Probiere das doch mal.
gruß
Maria
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Marc,
kannst du mal Extras–makro–Aufzeichnen aktivieren, dann mal
deine Pivotauswertung neu durchführen und dann hier den Code
des Makros posten?
Wenn man das im Code evtl nichtz erkennt, mit Hinweis in
welcher Spalte man anhand der Anzahl gefüllter Zellen die
zeilenanzahl ermitteln kann.
Gruß
Reinhard
Hallo Reinhard,
ich habe den Code unten mal angehängt.
Da Du das Problem mit VBA angehen möchtest gehe ich mal davon aus dass Du auch keinen simplen Klick kennst (ähnlich wie bei normalen Diagrammen)mit dem man einfach den Markierten Breich des Pivot Wizard erweitern kann.
Gruß
Marc
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
„‚Ele Programmierzeiten‘!R6C1:R96C6“).CreatePivotTable TableDestination:= _
„’[2006-09-25 Verlauf Stunden je Kostenstelle.xls]Auswertung EleProgrammieren’!R42C1“ _
, TableName:=„PivotTable1“, DefaultVersion:=xlPivotTableVersion10
ActiveWindow.SmallScroll Down:=-3
With ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„Pers“)
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„KomNr“)
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables(„PivotTable1“).AddDataField ActiveSheet.PivotTables( _
„PivotTable1“).PivotFields(„Zeit“), „Sum of Zeit“, xlSum
ActiveSheet.PivotTables(„PivotTable1“).AddDataField ActiveSheet.PivotTables( _
„PivotTable1“).PivotFields(„Stück“), „Sum of Stück“, xlSum
With ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„Datum“)
.Orientation = xlRowField
.Position = 1
End With
Range(„A43“).Select
With ActiveSheet.PivotTables(„PivotTable1“).PivotFields(„Datum“)
.Orientation = xlRowField
.Position = 2
End With
Hallo Marc,
normalerweise brauchst nur den Cursor in Pivottab setzen und
über das Menu gehen: Daten und Daten aktualisieren! Dan
sollten seine neuen Daten miteingebunden sein. Probiere das
doch mal.
gruß
Maria
Hallo Maria,
das ist nur bedingt richtig, Wenn meine Daten von A1 bis G100 gehen und ich irgendwo (z.B B30) einen Wert ändere, dann wird das über Refresh eingebracht.
Wenn ich aber immer wieder (z.B. täglich) neue Daten hinzu bekomme, also Zeile 101, 102 usw fülle, dann „wächst“ der Bereich nicht mit. Bei normalen Diagrammen kann man dann nochmal auf Data Range drücken, mit der Maus die neue Markierung aufziehen und alles ist mit drin.
So was suche ich eigendlich auch in den Pivot Tabellen, leider leider momentan noch vergebens. Reihard hat schon angedeutet dass ich das über VBA lösen muss.
Trotzdem DANKE
Da Du das Problem mit VBA angehen möchtest gehe ich mal davon
aus dass Du auch keinen simplen Klick kennst (ähnlich wie bei
normalen Diagrammen)mit dem man einfach den Markierten Breich
des Pivot Wizard erweitern kann.
Hi Marc,
jain, ist schon richtig dass ich da keinen Klick kenne, aber das hat überhaupt keine Bedeutung.
Der Hintergrund ist der, daß ich von Pivots absolut keine Ahnung habe 
Also können durchaus noch Tipps/Lösungen von Pivotanwendern wie Maria kommen.
Gruß
Reinhard
Hi Marc,
sehe ich das richtig, das letzte With ist eine Korrektur des With davor?
Deine Daten stehen anscheinend in
‚Ele Programmierzeiten‘!R6C1:R96C6
also in
‚Ele Programmierzeiten‘!A6:F96
Ist das richtig so? Dann die Frage, gibts du in F einen Wert ein oder steht da eine Formel? Wenn Formel, auf welche Zellen bezieht sich diese. dann gilt für diese Zellen die gleiche Frage. Letzlich muss ich wissen welche Zellen durch manuelle Eingabe (bzw. reinkopieren) das Ergebnis in F abändern.
Dies Zellen kann ich dann „überwachen“ und bei Änderung wird dann dieses Pivotmakro durchlaufen mit
Ele Programmierzeiten’!R6C1:R9 7 C6
als Datenquelle.
Option Explicit
Sub tt()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= \_
"'Ele Programmierzeiten'!R6C1:R96C6").CreatePivotTable TableDestination:= \_
"'[2006-09-25 Verlauf Stunden je Kostenstelle.xls]Auswertung EleProgrammieren'!R42C1" \_
, TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
ActiveWindow.SmallScroll Down:=-3
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Pers")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("KomNr")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( \_
"PivotTable1").PivotFields("Zeit"), "Sum of Zeit", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( \_
"PivotTable1").PivotFields("Stück"), "Sum of Stück", xlSum
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum")
.Orientation = xlRowField
.Position = 1
End With
Range("A43").Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum")
.Orientation = xlRowField
.Position = 2
End With
End Sub
Gruß
Reinhard
Guten Morgen Reinhard,
neue Woche neues Glück 
Hi Marc,
sehe ich das richtig, das letzte With ist eine Korrektur des
With davor?
Das ist richtig, ich habe die Tabelle mit dem Pivot Wizard erstellt und dabei den Rekorder laufen lassen. Am Schluss habe ich das Datum nochmals verschoben.
Deine Daten stehen anscheinend in
‚Ele Programmierzeiten‘!R6C1:R96C6
also in
‚Ele Programmierzeiten‘!A6:F96
Ist das richtig so?
Stimmt, die Daten sind eine ganz simple Liste, in den Spalten A bis F
Dann die Frage, gibts du in F einen Wert
ein oder steht da eine Formel?
Sämtliche Spalten werden von Hand eingetippt, momentan wird in diesem Worksheet nichts berechnet, die Pivot und andere Auswertungen sind auf dem nächsten Worksheet.
Wenn Formel, auf welche Zellen
bezieht sich diese. dann gilt für diese Zellen die gleiche
Frage. Letzlich muss ich wissen welche Zellen durch manuelle
Eingabe (bzw. reinkopieren) das Ergebnis in F abändern.
Dies Zellen kann ich dann „überwachen“ und bei Änderung wird
dann dieses Pivotmakro durchlaufen mit
Ele Programmierzeiten’!R6C1:R9 7 C6
als Datenquelle.
Wie würdest Du die Änderung „überwachen“?
In Spalte F mit Offset runterlaufen und schauen ob Value „“ ist?
Dann die letzte Zeilennummer in ne Variable schreiben und das Pivotmakro mit der Variablen schreiben?
Ich denke so könnte ich das realisieren, fällt Dir noch was eleganteres ein?
Danke dass Du Dir die Zeit für dieses Brainstorming nimmtst 
Gruß
Marc
Stimmt, die Daten sind eine ganz simple Liste, in den Spalten
A bis F
Dann die Frage, gibts du in F einen Wert
ein oder steht da eine Formel?
Sämtliche Spalten werden von Hand eingetippt, momentan wird in
diesem Worksheet nichts berechnet, die Pivot und andere
Auswertungen sind auf dem nächsten Worksheet.
Moin Marc,
Alt+F11, Doppelklick auf „Ele Programmierzeiten“, Code reinkopieren, Editor schliessen.
Völlig ungetestet, k.A. ob sich was tut und wenn ja, was *g
Option Explicit
Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Column 6 Then Exit Sub
Dim Zei As Long
Zei = Range("F65536").End(xlUp).Row
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= \_
"'Ele Programmierzeiten'!R6C1:R" & Zei & "C6").CreatePivotTable TableDestination:= \_
"'[2006-09-25 Verlauf Stunden je Kostenstelle.xls]Auswertung EleProgrammieren'!R42C1" \_
, TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10
ActiveWindow.SmallScroll Down:=-3
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Pers")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("KomNr")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( \_
"PivotTable1").PivotFields("Zeit"), "Sum of Zeit", xlSum
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables( \_
"PivotTable1").PivotFields("Stück"), "Sum of Stück", xlSum
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Datum")
.Orientation = xlRowField
.Position = 2
End With
End Sub
Gruß
Reinhard
Wow, langsam kommt das Ganze ins rollen,
das Aktualisieren macht er jetzt sobald die Spalte F geändert wurde,
die Variable „Zei“ wird auch (auf eine elegante Art und Weise) gefüttert.
Probleme hat er noch in folgener Zeile
SourceData:= _
„‚Ele Programmierzeiten‘!R6C1:R“ & Zei &
„C6“).CreatePivotTable TableDestination:= _
bzw. hier der alte Code
„‚Ele Programmierzeiten‘!R6C1:R96C6“).CreatePivotTable TableDestination:= _
Irgendwie muss bei dieser „Row Column: Row Column“ Notation die Variable anders eingebaut werden. Ich hab schon einige Varianten versucht, doch bis jetzt bin ich auf keinen grünen Zweig gekommen.
Gruß
Marc
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Marc,
probiere doch einmal folgende Lösung:
-
Gib deinem Datenbereich einen geeigneten Namen. Gehe dazu in deine Datentabelle, markiere den gesamten Bereich mit den Daten und schreibe den gewählten Namen in das Namenfeld (in der Bearbeitungsleiste ganz links, dort erscheint z. B. die Zelladresse einer angeklickten Zelle, wenn diese einzelne Zelle noch keinen Namen hat).
-
Rechtsklick in den Datenbereich der fertigen Pivottab, wähle in dem Kontextmenü „Assistent…“, klicke evtl. auf den Button „zurück“, so dass du im Schritt 2 von 3 des Assistenten bist. in diesem Schritt siehst du den DatenBereich deiner PivotTab unter Angabe der Zelladressen.
-
Ändere die Bereichsangabe, indem du hier den gewählten Namen deines Datenbereichs einträgst. Achte auf die genaue Schreibweise. Klicke dann auf „Fertig stellen“
Bis hierher hast du an deiner PivotTab und an deinem Chart nichts geändert.
Wenn Du jetzt Datensätze in deine PivotTab neu einbinden möchtest, änderst du lediglich die Bezüge des Datenbereichs über die Tastenkombination STRG+F3, markierst den Namen des Datenbereichs und änderst den Bezug (unten in dem Fenster, meist muss nur die Zeilenanzahl geändert werden)
-
Jetzt klicke einmal in die PivotTab und wähle über das Menü Daten, Daten aktualisieren. Deine Tabelle und dein Chart werden sofort aktualisiert.
-
Evtl. kannst du für den Schritt 3 ein Makro über den Makro-Recorder aufzeichnen. Die Frage ist, ob das notwendig ist, da das Erweitern des Datenbereichs manuell gemacht werden muss, und das anschließende „aufwendige“ Aktualisieren lediglich 3 Klicks sind.
Falls du noch Fragen hierzu hast, meld dich einfach noch mal
Gruß
Maria
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Guten Morgen Maria,
hab mir eben mal ein paar Minuten genommen und Deine Tipps ausprobiert.
Im Prinzip war ich schon ganz glücklich mit dem " Rechtsklick in der PivotTabelle und