Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1876to1880
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

Wert eines Slicers in Zelle schreiben

Wert eines Slicers in Zelle schreiben
01.04.2022 11:49:54
Filikos
Meine Pivottabelle hat verschiedene Datenschnitte. Einen bestimmten möchte ich nun ansprechen (siehe mein Code). Dieser enthält zwei Werte: WE und WT. Je nach Selektion soll der eine oder andere in eine bestimmte Zelle geschrieben werden. Sind beide selektiert, soll die betreffende Zelle leer sein. Bis jetzt habe ich folgenden Code:
'Slicer
Dim wks As Worksheet
Dim objSlicerItem As SlicerItem
Set wks = ActiveWorkbook.Worksheets("Hilfspivot")
With ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp").Slicers("TagTyp")
With objSlicerItem
' Wenn WE dann Wert in Zelle U7 schreiben, wks.Range ("U7").Value = Wert anzeigen
' Wenn WT, dann Wert in Zelle U7 schreiben, wks.Range ("U7").Value = Wert anzeigen
' in allen anderen Fällen die Zelle U7 leeren, wks.Range("U7").Value = clear.contens
End With
End With
Ich habe schon alles möglich probiert, um den Wert in die Zelle zu bekommen. Bin dankbar um eure Hilfe!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert eines Slicers in Zelle schreiben
01.04.2022 13:14:46
ChrisL
Hi

Sub Makro1()
Dim rngZiel As Range
Set rngZiel = Worksheets("Hilfspivot").Range("U7")
With ThisWorkbook.SlicerCaches("Datenschnitt_TagTyp")
If .SlicerItems("WE").Selected And Not .SlicerItems("WT").Selected Then
rngZiel = "WE"
ElseIf Not .SlicerItems("WE").Selected And .SlicerItems("WT").Selected Then
rngZiel = "WT"
Else
rngZiel = ""
End If
End With
End Sub
cu
Chris
AW: Wert eines Slicers in Zelle schreiben
01.04.2022 13:45:10
Filikos
Hallo Chris
Danke dir. Das Makro meldet jedoch bei dieser Befehlszeile jedoch einen Laufzeitfehler 1004 (Anwendungs- oder objektdefinierter Fehler):
If .SlicerItems("WE").Selected And Not .SlicerItems("WT").Selected Then
Was muss ich ändern?
Da dieser Teil nur ein Element des ganzen Makros ist, hier einmal das ganze Makro. Dies funktioniert einwandfrei - aber enthält eben noch nicht alle gewünschten Funktionalitäten. Ich möchte zum Schluss in meiner intelligenten Tabelle nämlich diejenigen Zeilen entfernen, welche denn Filtertext aufweisen.

Sub DatenUpdate()
'Slicerwert ermitteln
'Dim rngZiel As Range
'Set rngZiel = Worksheets("Hilfspivot").Range("U6")
'With ThisWorkbook.SlicerCaches("Datenschnitt_TagTyp")
'    If .SlicerItems("WE").Selected And Not .SlicerItems("WT").Selected Then
'        rngZiel = "WE"
'    ElseIf Not .SlicerItems("WE").Selected And .SlicerItems("WT").Selected Then
'        rngZiel = "WT"
'    Else
'        rngZiel = ""
'    End If
'End With
' Tabelle leeren - Titelzeile bleibt bestehen
Dim tbl As ListObject
Set tbl = Sheets("Hilfspivot").ListObjects("tb_source_full")
If tbl.ListRows.Count >= 1 Then
tbl.DataBodyRange.Delete
End If
'Startdatum und Enddatum
Dim datum As Date
Dim Start As Date
Dim Ende As Date
Dim newRow As ListRow
Start = Range("Datum_START")
Ende = Range("Datum_ENDE")
'Tabelle neu befüllen vom Start- bis Enddatum
For datum = Start To Ende
Set newRow = tbl.ListRows.Add
With newRow
.Range(1) = datum
.Range(2) = "=IF(ISBLANK([@Datum]),"""",IF(OR(WEEKDAY([@Datum],2)=6,WEEKDAY([@Datum],2)=7),""WE"",""WT""))"
.Range(3) = "=IF(ISBLANK([@Datum]),"""", IFERROR(VLOOKUP([@Datum],($P$14:$Q$9999) ,2,FALSE),0))"
.Range.Font.FontStyle = "Regular"
End With
Next datum
' Löschen
' Hier soll der Befehl folgen für das Löschen von Zeilen innerhalb der intelligenten Tabelle
'Datenwerte ausrichten
Range("tb_source_full[[TagTyp]]").HorizontalAlignment = xlCenter
Range("tb_source_full[[PT]]").HorizontalAlignment = xlRight
'Application.DisplayAlerts = True
End Sub

Anzeige
AW: Wert eines Slicers in Zelle schreiben
01.04.2022 13:54:00
ChrisL
Hi
Ich würde den Fehler so interpretieren, dass die Slicer-Items im Slicer-Catch nicht existieren.
cu
Chris
AW: Wert eines Slicers in Zelle schreiben
01.04.2022 14:40:15
Filikos
Ich habe einmal den Makro-Recorder laufen lassen und den betreffenden Datenschnitt angeklickt. Der Code zeigt
' ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp").VisibleSlicerItemsList = Array("[Kalender].[TagTyp].&[WT]")
' ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp").VisibleSlicerItemsList = Array("[Kalender].[TagTyp].&[WE]")
' ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp").ClearManualFilter
Also existieren die betreffenden Elemente. Die Pivot-Tabelle filtert auch sofort die Werte entsprechend.
Anzeige
AW: Wert eines Slicers in Zelle schreiben
01.04.2022 14:46:30
ChrisL
So sieht die Aufzeichnung bei mir aus. Womöglich habe ich eine andere Datei bzw. eine andere Ausgangslage...

Sub Makro1()
' Makro1 Makro
With ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp")
.SlicerItems("WE").Selected = True
.SlicerItems("WT").Selected = False
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp")
.SlicerItems("WT").Selected = True
.SlicerItems("WE").Selected = False
End With
ActiveWorkbook.SlicerCaches("Datenschnitt_TagTyp").ClearManualFilter
End Sub

AW: Wert eines Slicers in Zelle schreiben
01.04.2022 16:26:05
Filikos
Ich habe die Lösung auf einem anderen Weg gefunden: ich habe mir nochmals eine Pivot-Tabelle mit nur dem Filterwert TagTyp erstellt. Als Ergebnis erhalte ich WE, WT oder All und kann damit für die Mittelwert-Berechnung arbeiten.
Nun hoffe ich, dass es mir noch gelingt die entsprechenden Zeilen in der benannten Tabelle gemäss Zellwert zu löschen ...
Danke dir vorerst für deine Hilfe!
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige