Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
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

Letzte Zelle in Pivottabelle per Makro auslesen und nutzen

Letzte Zelle in Pivottabelle per Makro auslesen und nutzen
31.10.2023 08:49:20
JS
Hallo zusammen,

in einem Tabellenblatt habe ich mehrere Pivottabellen, die die Grundlage für Abbildungen in eigenen Tabellenblättern bilden.

Nun würde ich in Pivottabelle Nr. 8 gerne einen Filterwert (z.B. KW43 2023) automatisch festsetzen. In allen Pivottabellen wird dieser Wert in jeder neuen Woche (z.B. KW44 2023, KW45 2023) automatisch unten ergänzt. Es handelt sich dabei deshalb immer um den letzten echten Wert jeder Pivottabelle oder - wenn man das "Gesamtergebnis" mitzählt immer um die vorletzte Zeile jeder Pivottabelle.

Gibt es eine Möglichkeit, den Filterwert der Pivottabelle Nr. 8 in Zelle CN5 per Makro mit dem oben beschriebenen Wert zu überschreiben, vom dem bekannt ist, wo er ergänzt wird?

Im Netz bin ich über folgenden Ansatz gestolpert. Ich bin allerdings nicht in der Lage das Then Target auf meine Bedarfe anzupassen.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$CN$5" Then Target.Offset(-3, -2) = Target
End Sub


Ich wäre Euch für Eure Hilfe sehr dankbar.

Viele Grüße
JS

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Letzte Zelle in Pivottabelle per Makro auslesen und nutzen
31.10.2023 21:30:59
bigmayo
Moin JS,

teste mal diesen Ansatz:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim PivotTable As PivotTable
Dim LastValue As String
Dim FilterCell As Range
Dim PTName As String

' Ändere PTName auf den Namen deiner Pivottabelle Nr. 8
PTName = "PivotTable8"

' Überprüfe, ob die geänderte Zelle CN5 ist
If Target.Address = "$CN$5" Then
On Error Resume Next
Set PivotTable = Me.PivotTables(PTName)
On Error GoTo 0

If Not PivotTable Is Nothing Then
' Ermittle den letzten Wert in der Pivottabelle
On Error Resume Next
LastValue = PivotTable.PivotFields("DeinFeldname").PivotItems(PivotTable.PivotFields("DeinFeldname").PivotItems.Count).Name
On Error GoTo 0

' Wenn ein Wert gefunden wurde, aktualisiere die Zelle CN5
If LastValue > "" Then
Set FilterCell = Me.Range("CN5")
FilterCell.Value = LastValue
End If
End If
End If
End Sub


Bitte ersetze "PivotTable8" durch den Namen deiner Pivottabelle Nr. 8 und "DeinFeldname" durch den Namen des Felds in deiner Pivottabelle, das die Werte wie "KW43 2023" enthält.

Mit diesem Makro wird der Wert in Zelle CN5 automatisch mit dem letzten Wert in der Pivottabelle Nr. 8 aktualisiert, wenn in CN5 eine Änderung vorgenommen wird.
So sollte der Filterwert immer auf den letzten verfügbaren Wert in der Pivottabelle eingestellt ist.

Gruß
Anzeige
AW: Letzte Zelle in Pivottabelle per Makro auslesen und nutzen
02.11.2023 17:37:18
JS
Vielen Dank für Deine Nachricht.

Mir ist nicht klar, wie ich dieses PrivateSub in meinen Code einbauen kann.

Ich habe bereits einen Button mit dem folgenden Code belegt:

Sub Update()

'
' Update Makro
'

'
Sheets("Pivot-Auswertung").Select
ActiveWorkbook.RefreshAll
Sheets("all_mo-fr").Select
ActiveSheet.Range("$D$7:$K$216").AutoFilter Field:=3, Criteria1:=">1", _
Operator:=xlAnd
Sheets("all_Sa").Select
ActiveWindow.SmallScroll Down:=-165
ActiveSheet.Range("$L$7:$S$216").AutoFilter Field:=3, Criteria1:=">1", _
Operator:=xlAnd
Sheets("all_so").Select
ActiveSheet.Range("$D$7:$K$216").AutoFilter Field:=1, Criteria1:=">=1", _
Operator:=xlAnd
Sheets("Frequenzdaten").Select


End Sub


Kann ich Deinen Vorschlag da im Anschluss an den Updatevorgang ergänzen?

Viele Grüße
JS
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige