Registriert seit: 23.08.2024
Version(en): 365
Liebe Gemeinde
ich bastel grad bissl rum und bräuchte mal einen Rat.
Kann man eine Combobox (hier auf einem Worksheet) direkt mit einer
PowerQuery Abfrage füllen?
ICh habs über VBA; CubeWert und Cubeelement probiert aber so recht klappt nichts.
Danke für eure Hinweise =)
Jack_D
Registriert seit: 25.11.2021
Version(en): 2019, 365
09.10.2025, 15:33
(Dieser Beitrag wurde zuletzt bearbeitet: 09.10.2025, 15:33 von Ralf A.)
(09.10.2025, 14:54)Jack_d schrieb: Liebe Gemeinde
Kann man eine Combobox (hier auf einem Worksheet) direkt mit einer
PowerQuery Abfrage füllen?
Moin Jack,
direkt wohl nicht. Wenn mit direkt gemeint ist, dass Du das Abfrageergebnis nur ins Datenmodell lädst.
Du könntest Dir aber eine Abfrage (mit nur der einen benötigten, gefilterten Spalte) im Tabellenblatt ausgeben lassen und über Rechtsklick --> Formatieren der Combobox diesen Wertebereich im Reiter Steuerung angeben...
Nachteil, nach jeder Änderung in der Quelle müsste die Abfrage aktualisiert werden....
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Ciao, Ralf
Registriert seit: 23.08.2024
Version(en): 365
Ahoi Ralf
Danke!
Ja mit direkt meinte ich genau das. .. Ohne Umwege
ICh will mittels PQ mir ein Verzeichnis auslesen, und dann soll der Nutzer
mittels 2er CBoxen sich den Ort und das Jahr aussuchen.
and than the magic should happen ^^
Ein Zwischenladen wollte ich vermeiden.
Vielleicht muss ich es dann direkt über VBA lösen. - was ich nicht so "schön" find
VG Jack
Registriert seit: 25.11.2021
Version(en): 2019, 365
11.10.2025, 13:12
(Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2025, 13:12 von Ralf A.)
(09.10.2025, 15:41)Jack_d schrieb: Ein Zwischenladen wollte ich vermeiden.
Vielleicht muss ich es dann direkt über VBA lösen. - was ich nicht so "schön" find
Du sollst ja die Dateien nich zwischenladen. Du willst ja nur die Dateinamen. Und die musst Du auch mit VBA einlesen. Insofern gibt es da keinen großen Unterschied.
Das PQ Ergebnis lädst Du in eine (einspaltige) Pivottable und fügst einen Slicer hinzu. Das ist dann schon beinahe wie eine Combobox.
Da nutzt Du halt den Slicer als Filter (ist aus meiner Sicht sogar einfacher als das scrollen in einer C-Box). Und wenn Du immer nur einen Eintrag filterst (macht sich gut über den Einsatz bei Slicern) kannst Du in der Zielzelle einfach sagen:
= A2 (wenn die Überschriftenzeile der "
Pivotcombobox" in A1 ist)...
Funktioniert natürlich nur dann, wenn nur eine Zelle mit der Auswahl befüllt werden muss, also z. Bsp. bei einem Aufnahmformular. Wenn mehrere Zellen auf diese "
Combobox" zugreifen und abweichende Ergebnisse benötigen, dann geht das natürlich nicht...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Ciao, Ralf
Registriert seit: 23.08.2024
Version(en): 365
Hallo Ralf,
danke für deinen Vorschlag.
Das ist eine schöne Idee. Das werd ich so Umsetzen.
Da müsste dann auch der Konsekutive Filter gut funktionieren.
DANKE!
& Viele Grüße
Jack
Registriert seit: 23.08.2024
Version(en): 365
Noch eine ergänzende Frage:
Schaffe ich es den Wert direkt anzusprechen?
Mit "getPivotData" sowie die einzelnen "Fields" bekomm ich es irgendwie nicht hin
Grüße Jack
Registriert seit: 16.08.2020
Version(en): Office 2024
Hallo Jack,
in Hoffnung es richtig verstanden zu haben:
Öffne, falls du es noch nicht getan hast im VBA Editor das Lokalfenster und dann starte diese kleine Prozedur.
Im Lokalfenster siehst du dann alle Elemente des Pivotobjekts, auf was du dann auch zugreifen kannst.
Code:
Sub test()
Dim oPv As PivotTable
Set oPv = Tabelle1.PivotTables(1)
Stop
End Sub
Gruß uwe
Registriert seit: 23.08.2024
Version(en): 365
Hallo Uwe,
danke für deine Hilfe. Ich schau immer online in der MS Bibliothek/MS Learn welche Objecte und Methoden und Eigenschaften vorhanden sind.
Aber Lokal hab ich es natürlich komprimiert.
Leider hab ich auch da nichts gefunden.
Ich hab nur gelesen, dass ich den (data)Slicer nicht direkt adressieren kann sondern über die slicerQuelle gehen muss.
Und da ich nen String brauche, kann ich mir den auch Schwer über die Measures bei PVT
ziehen muss also auf pVtRow oder PVtColumn zurückgreifen.
Die wiederum geben mir nicht den Wert zurück. - also soweit ich das geblickt hab
Grüße
Jack
Registriert seit: 16.08.2020
Version(en): Office 2024
Hallo Jack,
wenn du die Slicer-Werte auslesen willst musst du über den SlicerCache dies tun.
Kleine For/Each Schleife mit Ausgabe des selektierten Wertes:
Code:
Sub SlicerWerteVonPivotTable()
Dim pt As PivotTable, cSL As SlicerCache, iSL As SlicerItem, i&
Set pt = Tabelle1.PivotTables(1)
For Each cSL In ThisWorkbook.SlicerCaches
If cSL.PivotTables.Count > 0 Then
If cSL.PivotTables(1).Name = pt.Name Then
Debug.Print "Slicer: " & cSL.Name
For Each iSL In cSL.SlicerItems
i = i + 1
If iSL.Selected Then MsgBox "Wert in angeklickten SlicerItem = " & iSL.Name & i & ". SlicerItem"
Next iSL
End If
End If
Next cSL
End Sub
Gruß Uwe
Registriert seit: 18.01.2021
Version(en): 365
Für PowerPivot sieht es leicht anders aus, wobei ich mir das Leben einfache gemacht habe und annehmen, es gibt jeweils immer nur ein Item
Code:
Sub GetPowerPivotSlicerSelections()
Dim sc As SlicerCache
Dim si As SlicerItem
Dim selectedItems As String
' SlicerCache-Name anpassen
Set sc = ThisWorkbook.SlicerCaches(1)
selectedItems = "Ausgewählte Elemente im Slicer '" & sc.Name & "':" & vbCrLf
' Zugriff über Levels(1).SlicerItems bei PowerPivot
For Each si In sc.SlicerCacheLevels(1).SlicerItems
If si.Selected Then
selectedItems = selectedItems & " - " & si.Name & vbCrLf
End If
Next si
MsgBox selectedItems
End Sub