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 Datenschnitt Werte auslesen / Werte setzen
#1
Hallo zusammen,

ich hoffe sehr, dass ihr mir bei folgendem Problem helfen könnt.
Ich habe einen Datenschnitt (Slicer) in Excel mit ~ 50 Mitarbeiternummern und Namen

Ich würde gerne der Reihe nach diese Einträge auswählen (anklicken), die Daten aktualisieren und drucken.
Beim auswählen zwei unterschiedlicher Einträge erhalte ich bei der Makroaufzeichnung folgenden Code (in schwarz):



Sub Aktualisieren()

Dim manummername As String

manummername = "1003 (Mustermensch)"

    ActiveWorkbook.SlicerCaches("Datenschnitt_MA___Name").VisibleSlicerItemsList = Array("[HRM].[MA + Name].&[1001 (Mustermann)]")
    ActiveWorkbook.SlicerCaches("Datenschnitt_MA___Name").VisibleSlicerItemsList = Array("[HRM].[MA + Name].&[1002 (Musterfrau)]")
   
    ActiveWorkbook.SlicerCaches("Datenschnitt_MA___Name").VisibleSlicerItemsList = Array("[HRM].[MA + Name].&[ & manummername & ]")
   
End Sub



Die Mitarbeiternummer und den Namen, also 1001 (Mustermann) bzw. 1002 (Musterfrau) / 1003 (Mustermensch) könnte ich aus einem anderen Tabellenblatt auslesen.

Der erste und zweite (aufgezeichnete) Eintrag funktionieren, beim dritten wäre mein Ansatz das Dynamisch via Variable zu befüllen. Ich habe hier aber sicher die & falsch gesetzt oder auch " vergessen etc.

Auf jeden Fall gibt es hier einen Fehler, dass der OLAP Eintrag nicht gefunden wurde.

Hat jemand eine Idee wie ich hier diesen Eintrag dynamisch (in einer Schleife) setzen kann?

Vielen Dank und schöne Grüße

Oliver

PS: Theoretisch interessiert mich auch wie man den Datenschnitt / Slicer auslesen und die Inhalte in ein Tabellenblatt schreiben könnte.
WIN 10 64-Bit Pro / EXCEL Microsoft Office 365 ProPlus 64-Bit
Antworten Top
#2
Hallo,

nur kurz getestet; die Einträge eines bestimmten Slicers kannst Du Dir beispielsweise wie folgt auslesen lassen.

Code:
Public Sub GetSlicerElements()
 
  Dim n As Long
  Dim o As Object
 
  For Each o In ThisWorkbook.SlicerCaches("MySlicer").SlicerItems
   
    n = n + 1
    ActiveSheet.Cells(n, 4).Value = o.Name
   
  Next
 
End Sub

Um jetzt die Slicer-Namen zu listen, ginge z.B. sowas:

Code:
Public Sub GetSlicers()
 
  Dim n As Long
  Dim o As Object
 
  For Each o In ThisWorkbook.SlicerCaches
   
    n = n + 1
    ActiveSheet.Cells(n, 4).Value = o.Name
   
  Next
 
End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top
#3
Hallo Mani,

super vielen Dank für deine Antwort. Werde ich gleich mal testen.
Hast du eventuell auch einen Ansatz wie man die Einträge dann setzen kann?
Also ich stelle mir das so vor, dass ich vorher die Einträge auslese und diese dann in einer Schleife setze.

Danke und lg

Oliver
WIN 10 64-Bit Pro / EXCEL Microsoft Office 365 ProPlus 64-Bit
Antworten Top
#4
Hallo,

meinst Du vielleicht so?

Code:
Public Sub SelectSlicerItems()
 
  Dim o As SlicerItem
 
  For Each o In ThisWorkbook.SlicerCaches("Slicer_Test").SlicerItems
   
    o.Selected = True
   
  Next
 
End Sub

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Antworten Top


Gehe zu:


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