Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
956to960
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
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pivotdatenauswahl automatisch

Pivotdatenauswahl automatisch
11.03.2008 14:20:00
Kerstin
Hallo liebes Forum,
ich habe ein Problem mit meiner Pivottabelle.
Ich mache eine Umsatzanalyse über 30 Tage, diese wird jeden Tag aktualisiert. Meine Auswertung liefert mir automatisch die Daten für das ganze Jahr, weil ich diese an anderer Stelle auch noch benötige.
Um immer die letzten 30 Tage zu sehen müsste ich jeden Tag die Daten im Zeilenfeld anpassen.
Meine Frage geht das auch automatisch, dass ich mittels VBA programmiere dass immer die letzten 30 Tage ausgewählt werden?
Am Besten dann auch noch die letzten 30 Arbeitstage, aber das ist erst einmal zweitrangig...
Anbei habe ich ein kleines Beispiel angehängt. Noch zu erwähnen ist, dass unter ein Datum auch mehrer Umsätze fallen können, nicht wie es bei Beispiel jetzt ist.
https://www.herber.de/bbs/user/50638.xls
Ich hoffe Ihr könnt mir weiterhelfen....
Viele Grüße
Kerstin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivotdatenauswahl automatisch
12.03.2008 02:29:00
fcs
Hallo Kerstin,
ich hab mal mit Excel97 versucht dein Problem zu lösen.
Lösung 1: Die Daten werden mit einem Datumsbereich gruppiert, das hat bei mir funktiniert. Die Daten werden dann nach Monaten und Tagen gruppiert.
Lösung 2: Nachdem alle Einträge eingebledet sind werden die alten Einträge ausgeblendet.
Leider funktioniert das Einblenden der Einträge bei mir aus unbekanntem Grund in der Datei nicht.
Zeichne mit dem Makrorecorder unter Excel 2003 das Einblendne aller Zeilen für ein Pivot-Feld auf. ggf. kannst du dann den Code an passender Stelle anpassen.
Gruß
Franz

Sub PivotGruppierenLetzte30()
'Daten in Pivottabelle Gruppieren
'Gruppierng nach Monat-Tag für die letzten 30 Tage
Dim ws As Worksheet, PT As PivotTable
Set ws = Worksheets("Tabelle1")
'Datenbereich der Pivottabelle aktualisieren
Set PT = ActiveSheet.PivotTables(1)
PT.SourceData = "'" & ws.Name & "'!Z1S1:Z" & _
ws.Cells(ws.Rows.Count, 1).End(xlUp).Row & "S2"
PT.RefreshTable
PT.PivotSelect "Fakturadatum[All]", xlLabelOnly
Selection.Group Start:=(Date) - 30, End:=(Date), Periods:=Array(False, False, _
False, True, True, False, False)
PT.PivotFields("Monate").AutoSort xlDescending, "Monate"
Range("A1").Select
Set ws = Nothing: Set PT = Nothing
End Sub
Sub GruppierungAufheben()
ActiveSheet.PivotTables(1).PivotSelect "Fakturadatum[All]", _
xlLabelOnly
Selection.Ungroup
ActiveSheet.PivotTables(1).PivotSelect "", xlOrigin
End Sub
Sub PivotAusblendenAelter30()
' Datumsangaben älter 30 Tage ausblenden
Dim ws As Worksheet, PT As PivotTable, iI As Integer, PI As PivotItem, PF As PivotField
Set ws = Worksheets("Tabelle1")
Set PT = ActiveSheet.PivotTables(1)
'Datenbereich der Pivottabelle aktualisieren
PT.SourceData = "'" & ws.Name & "'!Z1S1:Z" & _
ws.Cells(ws.Rows.Count, 1).End(xlUp).Row & "S2"
PT.RefreshTable
Application.ScreenUpdating = False
Set PF = PT.PivotFields("Fakturadatum")
With PF
'Alle ausgeblendenten Werte anzeigen (funktioniert leider unter Excel 97 nicht)
For Each PI In .HiddenItems
PI.Visible = True
Next
'Alte Werte ausblenden
For Each PI In .VisibleItems
If CDate(PI.Name) 


Anzeige
AW: Pivotdatenauswahl automatisch
12.03.2008 16:10:00
Kerstin
Hallo Franz,
tausend Dank für deine Hilfe... hat mir echt super weitergeholfen.
In meiner Testdatei funktioniert alles super!
Hab jetzt auch den Makro weitestgehend auf meine Orginaldatei anpassen können.
An einem scheitere ich allerdings mit meinem Verständnis für VBA:
Was passiert im ersten Sub (Zeile 7):
Selection.Group Start:=(Date) - 31, End:=(Date) - 1, Periods:=Array(False, False, _
False, True, True, False, False)
Bei diesem Periods:=Array....
Kann da leider gar nichts damit anfangen...
Kann mir jemand weiterhelfen. Wäre super.
Vielen Dank. Kerstin

Anzeige
AW: Pivotdatenauswahl automatisch
12.03.2008 16:40:43
fcs
Hallo Kirsten,
in Pivottabellen kann man Pivotfelder die nur Datum-/Zeitangaben enthalten zusätzlich speziell gruppieren, so dass die Daten entsprechend gruppiert dargestellt werden.
In der Zeile:

Selection.Group Start:=(Date) - 30, End:=(Date), Periods:=Array(False, False, _
False, True, True, False, False)

wird mit dem Parameter Periods festgegelegt nach welchen Zeiträumen die Daten gruppiert werden sollen.
Im Array wird mit False oder True festgelegt welcher Zeitraum angewendet werden soll.
Array(Sekunde, Minute, Stunde, Tage, Monate, Quartale, Jahre).
In deinem Fall sind Tage und Monate auf True gesetzt.
Manuell geht es wie folgt:
Klicke das Feld "FakturaDatum" in der Pivot-Tab an.
Anschließend Menü Daten--Gruppierung/Gliederung--Gruppierung...
Im Dialog kannst du dann die Einstellungen machen.
Wichtig ist, das die Quelldaten der Pivot-Tab der Datumsspalte in allen Zeilen ausgefüllt sind und auch keine Leerzellen enthalten. Sonst funktioniert die Datumsgruppierung nicht.
Gruß
Franz

Anzeige
AW: Pivotdatenauswahl automatisch
12.03.2008 17:02:00
Kerstin
Vielen Dank, jetzt verstehe ich das...
Aber wegen den Leerzellen, dürfen die nur beim Manuellen nicht drin sein oder auch beim Makro?!
Ich hab bei meinen Quelldaten teilweise # drin, kann das der Grund sein dass der Makro nicht läuft?!
Bis jetzt wird eine neue Spalte in der Pivottabelle eingefügt und es wird eine Gruppierung vorgenommen, allerdings geht diese über die gesamten Fakturadaten und er selektiert nicht die einzelnen Monate und auch nicht die Bereiche kleiner 30 Tage.
Wäre super wenn du mir nochmals weiterhelfen kannst.
Viele Grüße Kerstin

AW: Pivotdatenauswahl automatisch
12.03.2008 17:11:00
Kerstin
Sorry hab vergessen die Frage auf offen zu stellen...........

Anzeige
AW: Pivotdatenauswahl automatisch
12.03.2008 18:18:49
fcs
Hallo Kirsten,
das #-Zeichen bereitet Probleme.
Das Gruppierungs-Makro liefert einfach kein Ergebnis mehr und das andere Makro bricht ab.
Damit das Gruppierungsmakro funktioniert müsstets du das #-Zeichen durch eine Zahl z.B. 0 oder auch durch den 1.1.1900 ersetzen.
Das 2. Makro kann man so anpassen, dass alle nicht Datumszellen ausgeblendet werden. Wegen der erforderlichen Fehlerbehandlung wird es etwas komplizierter.
Gruß
Franz

Sub PivotAusblendenAelter30()
' Datumsangaben älter 30 Tage ausblenden
Dim ws As Worksheet, PT As PivotTable, iI As Integer, PI As PivotItem, PF As PivotField
On Error GoTo Fehler
Set ws = Worksheets("Tabelle1")
Fehler = 2
Set PT = ActiveSheet.PivotTables(1)
Fehler = 0
'Datenbereich der Pivottabelle aktualisieren
PT.SourceData = "'" & ws.Name & "'!Z1S1:Z" & _
ws.Cells(ws.Rows.Count, 1).End(xlUp).Row & "S2"
PT.RefreshTable
Application.ScreenUpdating = False
Set PF = PT.PivotFields("Fakturadatum")
With PF
'Alle ausgeblendenten Werte anzeigen
For Each PI In .HiddenItems
Fehler = 1
PI.Visible = True
Fehler = 0
Next
'Alte Werte ausblenden
For Each PI In .VisibleItems
If IsDate(PI.Name) Then
If CDate(PI.Name) 


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige