Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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

Pivotfilter per Zelle steuern

Pivotfilter per Zelle steuern
30.08.2013 08:52:30
Tom
Moinsen alle,
gibt es einen Code mit dem man den Pivot Datumsfilter "liegt zwischen" steuern könnte?
Mit folgendem Code geht es schon in die richtige Richtung Pivotfelder anzusteuern, aber wie könnte man es auf den Datumsfilter anwenden?
Folgender Code liegt vor:
Private Sub Worksheet_Change(ByVal Target As Range)
Call PivAendern
End Sub
Sub PivAendern()
With Sheets("Top Peak").PivotTables(1)
.PivotFields("Nr").CurrentPage = Sheets("Mopti").[Y1].Value
.PivotCache.Refresh
End With
End Sub Filter sollte dann hier eingreifen:
.PivotFields("Buchungsdatum").CurrentPage
Hab jetzt gerade keine Bsp.Mappe zur Hand.
Aber vielleicht habt Ihr ja schon eine Idee!
MfG
Tom H.

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

Betreff
Datum
Anwender
Anzeige
AW: Pivotfilter per Zelle steuern
30.08.2013 09:09:50
selli
hallo tom,
das ist so eine sache mit den pivots.
ich habe jetzt zwar nicht die lösung für deine konkrete aufgabenstellung, habe es selber aber anders gelöst.
ich habe in der ursprungstabelle eine hilfsspalte eingefügt. hier setze ich in den betreffenden zeilen ein zeichen (z.bsp. "x"), und setze diese spalte in den bereichsfilter der pivot.
in der hilfsspalte die zeichen per vba zu setzen und dann die pivot zu refreshen ist sicherlich einfacher zu realisieren als in der pivot herumzudoktoren.
gruß
selli

AW: Pivotfilter per Zelle steuern
30.08.2013 09:44:24
Tom
Hi Selli,
das ist mir zu einfach.
Ich suche nach einer "unsichtbaren" Lösung ! :-)
Folgender aufgenommener Code funzt sehr gut aber:
Sub PivAendern1()
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Buchungsdatum")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("PivotTable1").PivotFields("Buchungsdatum"). _
PivotFilters.Add Type:=xlDateBetween, Value1:="28.02.2013", Value2:= _
"31.12.2013"
End Sub
aber: ich möchte die Value Werte ersetzen mit
Value1:= Sheets("Mopti").[Y1].Value
Value2:= Sheets("Mopti").[AB1].Value
gibt noch Fehler 400 zurück!
Und gerne das hier umgehen damit ich nicht erst navigieren muss:
.Orientation = xlRowField
.Position = 3
Vielen Dank schon einmal für weitere Hilfe.
Gruß
Tom H.

Anzeige
Mein Ansatz: Benanntes Argument nicht gefunden !
30.08.2013 10:23:28
Tom
Hier mein Ansatz.
Läuft durch, aber am Ende: Benanntes Argument nicht gefunden !
Sub PivAendern()
With Sheets("Top Peak").PivotTables(1).PivotFields("Buchungsdatum")
.Orientation = xlRowField
.Position = 3
.PivotFilters.Add Type:=xlDateBetween, Value1:=Sheets("Mopti").[Y1], Value2:=Sheets(" _
Mopti").[AB1]
.PivotCache.Refresh
End With
End Sub
Höre gern
Tom H.

AW: Mein 2ter Versuch = Objekt Erforderlich
30.08.2013 11:45:47
Tom
Moinsen,
mein 2ter Ansatz gibt mir "Objekt Erforderlich" zurück-
Sub PivAendern2()
Dim cd As Date
Dim cd1 As Date
cd = System.Today().AddMonths(-6)
cd1 = System.Date.Today
ActiveSheet.PivotTables("PivotTable1").PivotFields("Buchungsdatum").PivotFilters.Add Type:= _
xlDateBetween, _
Value1:=cd, Value2:=cd1
End Sub
Freue wenn Ihr mir beim Lösen helfen könnt.
MfG
Tom H.

Anzeige
AW: Mein 2ter Versuch = Objekt Erforderlich
30.08.2013 13:15:12
fcs
Hallo Tom,
Datumswerte sind in Filtern oft problematisch und müssen in eine Zahlenwert überführt werden. Typ Double oder Long.
Vor dem setzen eines Filters sollte der entsprechende Filter des Pivotfeldes zurückgesetzt werden.
Gruß
Franz
Sub PivAendern()
Dim pvTab As PivotTable, pvField As PivotField
Set pvTab = Sheets("Top Peak").PivotTables(1)
Set pvField = pvTab.PivotFields("Buchungsdatum")
pvTab.RefreshTable
With pvField
'        .Orientation = xlRowField 'nicht erforderlich wenn Zeilenfeld schon plaziert
'        .Position = 3             'nicht erforderlich wenn Zeilenfeld schon plaziert
.ClearAllFilters
.PivotFilters.Add Type:=xlDateBetween, _
Value1:=CDbl(Sheets("Mopti").Range("Y1").Value), _
Value2:=CDbl(Sheets("Mopti").Range("AB1").Value)
End With
End Sub

Anzeige
AW: Mein 2ter Versuch = Objekt Erforderlich
30.08.2013 13:40:34
Tom
Hallo Franz,
vielen Dank für den Code und den Tip bzgl. Umwandeln in Zahlenwerte.
Das wird mir in Zukunft helfen.
Ich habe parallel noch eine andere Frage laufen derer ich auch nicht Herr werde.
Guck mal bitte rein wenn Du Zeit hast!
siehe: Summeprodukt und "Min" statt "Summe"!
Ist im Prinzip die Pivot-Idee als Formel.
Nur weiß ich noch nicht was von beiden besser in der Handhabung ist.
MfG
Tom

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige