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