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

Gibt es Platzhalter bei VBA?

Gibt es Platzhalter bei VBA?
18.12.2020 18:07:24
Andrea
Hallo zusammen,
ich möchte in einer Pivot-Tabelle in ein Datumsfeld filtern, so dass alle Einträge eines bestimmten Monats und Jahres ausgegeben werden, also z. B. alle Einträge aus 12/2016.
Zeichne ich das Makro mit dem Recorder auf, werden dort alle aktuellen Einträge aufgelistet:
ActiveSheet.PivotTables("PivotTable10").PivotFields( _
"[Auslage].[Erstellt Am].[Erstellt Am]").VisibleItemsList = Array( _
"[Auslage].[Erstellt Am].&[01.12.2020]", "[Auslage].[Erstellt Am].&[02.12.2020]" _
, "[Auslage].[Erstellt Am].&[03.12.2020]")
Das nützt mir ja nix, weil ich Monat und Jahr variabel auswählbar gestalten will. Gibt es hierfür so etwas wie Platzhalter in Excel? (Ich habe Excel 365). Mit #, ? und * habe ich es bereits erfolglos probiert:
ActiveSheet.PivotTables("PivotTable10").PivotFields( _
"[Auslage].[Erstellt Am].[Erstellt Am]").VisibleItemsList = Array( _
"[Auslage].[Erstellt Am].&[##.12.2016]")
Oder gibt es sonst eine Lösung?
Vielen Dank und beste Grüße
Andrea

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

Betreff
Datum
Anwender
Anzeige
AW: Gibt es Platzhalter bei VBA?
18.12.2020 19:17:03
Andrea
Nein, leider nicht.
Wie ich in der Pivot selber filtere, weiß ich. Ich möchte das aber nicht manuell, sondern per Makro machen.
Gruß Andrea
AW: Gibt es Platzhalter bei VBA?
18.12.2020 19:22:42
Yal
Hallo Andrea,
wenn der Feld als Datum erkannt wird, dann entfaltet sich eine hierarchie aus Jahr >> Quartal >> Monat >> Tag, die aussehen, als es einzelne Felder wären. Über Rechte Maustaste, Gruppieren, lässt sich die Detailsstufe einrichten.
Man kann dann tatsächlich von einem Datum die Monate als Zeilenüberschrift und die Jahre als Spaltenüberchrift oder Kopf haben.
Wenn Du diesen Zustand erreicht hast, dann kannst Du per Recorder das Coding erzeugen lassen. Dann sollte die Monate oder Jahre einzel vorkommen.
Alternativ ist
Sub Monat_anzeigen()
Dim E As PivotItem
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Monate")
.CurrentPage = "(All)"          'Element in Kopfbereich ohne spez. Filter (All)
.EnableMultiplePageItems = True 'Multiselect erlauben (Kopfbereich)
For Each E In .PivotItems       'Einzelne durchgehen
E.Visible = (InStr(1, "Mar;May;Oct", E.Name) > 0) 'wenn Name nicht in der Liste
Next
End With
End Sub

VBA nimmt die Monate-Name in englische Format.
E.Caption, also Anzeige, wäre auf Deutsch.
VG
Yal
Anzeige
AW: Gibt es Platzhalter bei VBA?
22.12.2020 01:10:07
Andrea
Hallo Yal,
leider komme ich nicht zurecht :-(
Das Gruppieren funktioniert nicht wie gewünscht, ich kann die einzelnen Datumsangaben noch nicht einmal sortieren. Das Ergebnis ist nach dem Sortieren identisch zu vorher, und zwar unsortiert:

01.01.2012
01.02.2011
01.02.2012
01.02.2013
01.02.2016
01.02.2017
01.02.2018
01.02.2019
01.03.2012
Bedeutet das, dass es sich bei dem Feld doch nicht um ein Datumsfeld handelt?
Alternativ habe ich das Feld in den Kopffilter verschoben und auf meine Daten (PivotTable10 und PivotField "Auslage erfasst") umgestellt, aber der Debug-Modus meldet sich schon in der ersten Zeile ...
Und ja, bei Ausführung des Makros war ich in der richtigen Tabelle.
Gruß Andrea
Anzeige
AW: Gibt es Platzhalter bei VBA?
22.12.2020 10:37:03
Yal
Hallo Andrea,
deine Daten sehen eindeutig als Text sortiert aus. Gehe auf die Quelle und setze die Zellen auf Datum-Format um (Strg+1).
VG Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige