25.10.2024, 23:11
Hallo zusammen,
ich habe einen Datenschnitt der auf eine Power-BI Datenquelle geht.
Manuell kann ich die einzelnen Elemente im Datenschnitt problemlos auswählen und die dahinterliegende Abfrage laut Power-Bi wird aktualisiert und an alle damit verknüpften Tabellen übergeben.
Aber ich würde das nun gerne mit VBA lösen, so dass alle Datensätze durchlaufen werden und das bekomme ich leider nicht hin.
In einem Datenschnitt der mit einer Pivot-Tabelle verknüpft ist funktioniert es problemlos, aber beim Datenschnitt der mit Power-BI verknüpft ist funktioniert es nicht (siehe Screenshot).
Vielleicht hat ja jemand einen entscheidenden Tipp oder einen Workaround für mich.
Vielen Dank und lg
Oliver
ich habe einen Datenschnitt der auf eine Power-BI Datenquelle geht.
Manuell kann ich die einzelnen Elemente im Datenschnitt problemlos auswählen und die dahinterliegende Abfrage laut Power-Bi wird aktualisiert und an alle damit verknüpften Tabellen übergeben.
Aber ich würde das nun gerne mit VBA lösen, so dass alle Datensätze durchlaufen werden und das bekomme ich leider nicht hin.
In einem Datenschnitt der mit einer Pivot-Tabelle verknüpft ist funktioniert es problemlos, aber beim Datenschnitt der mit Power-BI verknüpft ist funktioniert es nicht (siehe Screenshot).
Code:
Sub DatenVerarbeitenUndSpeichern()
Dim wsCheckliste As Worksheet
Dim wsParameter As Worksheet
Dim datenschnitt As slicerCache
Dim slicerItem As slicerItem
Dim cell As Range
Dim dateiPfad As String
Dim datumStr As String
Dim neuerDateiName As String
Dim neuerDateiPfad As String
Dim pdfDateiPfad As String
Dim zielWb As Workbook
Dim quellWb As Workbook
' Arbeitsblätter definieren
Set wsCheckliste = ThisWorkbook.Sheets("Checkliste")
Set wsParameter = ThisWorkbook.Sheets("Parameter + Zusammenfassung")
' Den richtigen SlicerCache für "AB_ID_Artikelfamilie" definieren
Set datenschnitt = ThisWorkbook.SlicerCaches("Datenschnitt_AB_ID_Artikelfamilie")
' Datum im Format JJJJ-MM-TT als String generieren
datumStr = Format(Date, "yyyy-mm-dd_")
' Durch die Werte in Spalte D ab Zeile 2 im Blatt "Checkliste" schleifen
For Each cell In wsCheckliste.Range("D2:D" & wsCheckliste.Cells(Rows.Count, "D").End(xlUp).Row)
' Datenschnitt zurücksetzen, um nur den aktuellen Wert auszuwählen
'datenschnitt.ClearManualFilter
' Prüfen, ob der Wert im Datenschnitt verfügbar ist, bevor er ausgewählt wird
For Each slicerItem In datenschnitt.SlicerItems
If slicerItem.Name = cell.Value Then
slicerItem.Selected = True
Exit For
End If
Next slicerItem
End Sub
Vielleicht hat ja jemand einen entscheidenden Tipp oder einen Workaround für mich.
Vielen Dank und lg
Oliver
WIN 10 64-Bit Pro / EXCEL Microsoft Office 365 ProPlus 64-Bit