Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Pivot multiple Datumsfilter
#1
Guten Tag zusammen,

ich habe eine Herausforderung multiple Daten per VBA in einer Pivottabelle zu filtern.

Ich habe eine kleine Tabelle (Daten) erstellt in meiner Datei. In R0 habe ich eine Aufsummierung der Rechnungssummen, die ich diskreter Weise entfernt habe. In R0 will ich eine Schaltfläche, die mir im Tabellenblatt "R1" die Pivottabelle mit den eingetragenen Datumsangaben filtert. Für das Beispiel will ich also, dass ich die Datum, die in B1 - B7 stehen in R1 im PivotFeld Proforma gefiltert werden.

Leider kriege ich keine Lösung. Ich schaffe es lediglich mit einem einzigen Datum :(

Ungefähr so:
Code:
Sheets("R1").Select
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Rechnung").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Rechnung").CurrentPage = _
        "(All)"
   
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Proforma").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Proforma").CurrentPage = CDate([I1])

Ich hoffe mir kann jemand behilflich sein

Vielen Dank im Voraus
Beste Grüße
Antworten Top
#2
So... hier auch mit Anhang


Angehängte Dateien
.xlsx   Mappe4.xlsx (Größe: 15,15 KB / Downloads: 4)
Antworten Top
#3
Hi

Versuch es so.
Code:
Sub Makro1()
Dim a

With Sheets("R1").PivotTables("PivotTable1").PivotFields("Proforma")
  Sheets("R1").PivotTables("PivotTable1").RefreshTable
  .EnableMultiplePageItems = True
   For Each a In .PivotItems
     a.Visible = WorksheetFunction.CountIf(Range("B1:B7"), a) > 0
   Next a
End With
End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • CHASiN1994
Antworten Top
#4
Hallo

Zum Filtern benötigst du kein VBA, nutze Datenschnitte.


Angehängte Dateien
.xlsx   Mappe4_CHASiN1994.xlsx (Größe: 21,38 KB / Downloads: 3)
Viele Grüße
PIVPQ
Antworten Top
#5
Erstelle ein Slicer:

Code:
Sub M_snb()
    With ActiveWorkbook.SlicerCaches("Slicer_Proforma")
      c00 = Join(Array(.SlicerItems(1).Name, .SlicerItems(2).Name, .SlicerItems(4).Name), "_")

      For Each it In .SlicerItems
          it.Selected = InStr(c00, it.Name)
        Next
    End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
(02.04.2022, 14:42)Elex schrieb: Hi

Versuch es so.
Code:
Sub Makro1()
Dim a

With Sheets("R1").PivotTables("PivotTable1").PivotFields("Proforma")
  Sheets("R1").PivotTables("PivotTable1").RefreshTable
  .EnableMultiplePageItems = True
   For Each a In .PivotItems
     a.Visible = WorksheetFunction.CountIf(Range("B1:B7"), a) > 0
   Next a
End With
End Sub
Gruß Elex

funktioniert genau wie ich es mir vorgestellt habe

(02.04.2022, 16:56)PIVPQ schrieb: Hallo

Zum Filtern benötigst du kein VBA, nutze Datenschnitte.

hi,

ich wollte mit VBA, da ich im Anschluss noch Mails automatisch versende und die Vorgehensweise 5 mal hinternander mit 5 Tabellenblätter mache. 

Danke trotzdem für deine Mühe

(02.04.2022, 17:16)snb schrieb: Erstelle ein Slicer:

Code:
Sub M_snb()
    With ActiveWorkbook.SlicerCaches("Slicer_Proforma")
      c00 = Join(Array(.SlicerItems(1).Name, .SlicerItems(2).Name, .SlicerItems(4).Name), "_")

      For Each it In .SlicerItems
          it.Selected = InStr(c00, it.Name)
        Next
    End With
End Sub

nicht ausprobiert, da ich bereits die Lösung von Elex verwendet habe.

Danke trotzdem für deine Mühe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste