![]() |
Betrifft: Datenschnitt Vorauswahl per VBA
von: Peter Müller
Geschrieben am: 19.11.2014 14:21:11
Hallo,
ich möchte für einen Datenschnitt eine Vorauswahl treffen, die ich mit einem Klick aktivieren kann. Hierzu benutze ich folgenden Code:
Sub AuswahlLand() Application.ScreenUpdating = False ActiveWorkbook.SlicerCaches("Datenschnitt_Land").ClearManualFilter With ActiveWorkbook.SlicerCaches("Datenschnitt_Land") .SlicerItems("D").Selected = True .SlicerItems("E").Selected = True 'wie kann ich alle, die "False" sind, zusammenfassen? .SlicerItems("F").Selected = False .SlicerItems("N").Selected = False End With Application.ScreenUpdating = True End Sub
![]() ![]() |
Betrifft: AW: Datenschnitt Vorauswahl per VBA
von: Peter Müller
Geschrieben am: 19.11.2014 14:24:38
...hier noch die Datei:
https://www.herber.de/bbs/user/93876.xlsm
![]() ![]() |
Betrifft: AW: Datenschnitt Vorauswahl per VBA
von: Luschi
Geschrieben am: 19.11.2014 18:42:03
Hallo Peter,
versuch es mal so:
Sub AuswahlLand() Dim sC As SlicerCache, dic As Object, it As Object, _ s As String, i As Integer, arr As Variant Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual 'hier alle alle Slicers , die aktiviert sein sollen, kommagetrennt angeben s = "D,E" arr = Split(s, ",", -1, vbTextCompare) Set dic = CreateObject("Scripting.Dictionary") For i = 0 To UBound(arr) dic.Add Trim(arr(i)), "" Next i Set sC = ActiveWorkbook.SlicerCaches("Datenschnitt_Land") With sC .ClearManualFilter For Each it In .SlicerItems If (Not dic.exists(it.Name)) Then it.Selected = False End If Next it End With dic.RemoveAll Erase arr Set dic = Nothing Set sC = Nothing Set it = Nothing Application.ScreenUpdating = True Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic End SubGruß von Luschi
![]() ![]() |
Betrifft: AW: Datenschnitt Vorauswahl per VBA
von: Peter Müller
Geschrieben am: 20.11.2014 07:57:40
Moin Luschi,
ich danke dir vielmals! Klappt perfekt!
Beste Grüße,
Peter
![]() |