Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: letzte Zeile einer Pivottabelle ermitteln

letzte Zeile einer Pivottabelle ermitteln
03.03.2017 13:56:51
r
Ich möchte gerne die letzte Zeile einer Pivottabelle ermitteln. Die Pivot fängt in der Zeile L11 an und erweitert sich im laufe des Monats in unregelmäßigen abständen. Ich möchte das per Makro immer der letzte Wert der Pivot selektiert wird. Am Ende des Monats werden die Daten (manuell) in der Pivot gelöscht und sie fängt wieder bei L11 an.
L10 = Überschrift der Pivot
L11 = Der erste Datensatz
Danke für eure Hilfe!
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA gut? Cells(rows.count,1).end(xlup) ... (owT)
03.03.2017 14:06:11
EtoPHG

AW: VBA gut? Cells(rows.count,1).end(xlup) ... (owT)
03.03.2017 14:23:25
r
Funzt nicht.
Es handelt sich um eine Pivottabelle.
AW: VBA gut? Cells(rows.count,1).end(xlup) ... (owT)
03.03.2017 14:50:31
Der
Hallo,
das geht aucgh bei Pivot, Du musst nur die richtige Spalte verwenden:
Cells(rows.count, "L").end(xlup)

Anzeige
Letzte Zeile einer Pivot
03.03.2017 15:10:20
r
Zeile = Cells(Rows.Count, "L").End(xlUp)
ActiveSheet.Cells(11 + Zeile - 2, 12).Select
Zeile hat bei mir den Wert = "" also gar keinen?
AW: Letzte Zeile einer Pivot
03.03.2017 15:29:11
Der
Der Schnipsel gibt auch die letzte Zelle der Spalte L zurück und nicht die Zeilennummer. Wenn du die Zeilennummer benötigst, dann hängst Du einfach ein .Row dran. Wenn Du nur die Zelle selektriren willst, hängst Du einfasch .Select dran.
Anzeige
Probiers mal so... Gruß
03.03.2017 15:10:19
robert

Sub Makro1()
With ActiveSheet.PivotTables("PvtMitVba")'PivotTables- Name anpassen
lz = Cells(Rows.Count, 1).End(xlUp).Row 'ev. Spalten Nr. anpassen
End With
End Sub

AW: Probiers mal so... Gruß
03.03.2017 15:19:59
r
Ergibt leider nur den Wert 1. Also er zählt nicht weiter.
? Bei mir gibt er 15 in der Box aus kwT
03.03.2017 15:55:22
Der
das ist doch die letzte Zeile in Pivot-oder? oT
03.03.2017 15:58:20
robert
Stimmt, hast recht! Mein Fehler! oT
03.03.2017 16:32:59
Der
Anzeige
AW: oder so...
03.03.2017 15:27:26
Luschi
Hallo r r,
das klappt bei mir:
Dim n As Long
n = Range(Split(Tabelle2.PivotTables("PivotTable1").DataBodyRange.Address, ":", -1, vbTextCompare)(1)).Row
wobei Du anpassen mußt: Tabelle2 und PivotTable1
Gruß von Luschi
aus klein-Paris
Warum so kompliziert?
03.03.2017 15:34:50
Der
DataBodyRange gibt doch eine Range zurück:
With Tabelle2.PivotTables("PivotTable1").DataBodyRange
n = .Cells(.Cells.Count).Row
End With

oder zum Selektieren derselben Zelle:
With Tabelle2.PivotTables("PivotTable1").DataBodyRange
.Cells(.Cells.Count).Select
End With

Anzeige
AW: Warum so kompliziert?
03.03.2017 19:15:56
Luschi
Hallo Steuerfuzzi,
wer sagt Dir denn, daß es unterhalb der Pivot-Tabelle nicht noch irgendwelche Daten gibt, die nichts mit dem Datenbereich der Pivottabelle zu tun haben.
Deshalb berufe ich mich auf Informationen, die vom Pivot-Objekt zu erfahren sind, und nicht von Excel-Vba-Funtions, die ohne Kenntnis der Voraussetzungen ein Ergebnis liefern.
Gruß von Luschi
aus klein-Paris
Das gleiche ist ja der Datenbereich von ListObjects (also formatierten Tabellen), die in Vba wesentlich mehr Infos verraten als auf der Excel-Oberflächen!
Anzeige
Hast Du meinen Beitrag auch gelesen?
04.03.2017 08:49:01
Der
Ich glaube nicht!
AW: Hast Du meinen Beitrag auch gelesen?
05.03.2017 09:23:05
Luschi
Hallo Steuerfuzzi,
hast Recht, so funktioniert es auch.

With Tabelle4.PivotTables("PivotTable1").DataBodyRange
n = .Cells(.Cells.Count).Row
Debug.Print n
'oder so:
n = .SpecialCells(xlCellTypeLastCell).Row
Debug.Print n
End With
Gruß von Luschi
aus klein-Paris
Anzeige
Außer "r r" haben es Alle gelesen :-) oT
05.03.2017 14:29:17
robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Letzte Zeile einer Pivottabelle ermitteln


Schritt-für-Schritt-Anleitung

Um die letzte Zeile einer Pivottabelle in Excel zu ermitteln, kannst Du folgenden VBA-Code verwenden. Dieser Code geht davon aus, dass die Pivottabelle in der Spalte L beginnt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein: Klicke mit der rechten Maustaste auf VBAProject (DeineDatei.xlsx), wähle Einfügen und dann Modul.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub LetzteZeilePivot()
        Dim lz As Long
        lz = Cells(Rows.Count, "L").End(xlUp).Row
        MsgBox "Die letzte Zeile der Pivottabelle ist: " & lz
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die letzte Zeile der Pivottabelle zu ermitteln.


Häufige Fehler und Lösungen

  • Problem: Der Code gibt immer den Wert 1 zurück.

    • Lösung: Stelle sicher, dass die Pivottabelle tatsächlich Daten enthält. Ansonsten wird die letzte Zeile als 1 zurückgegeben.
  • Problem: Der Code funktioniert nicht für Pivottabellen.

    • Lösung: Verwende stattdessen die DataBodyRange-Eigenschaft der Pivottabelle:
    Sub LetzteZeilePivotDataBody()
        Dim n As Long
        With ActiveSheet.PivotTables("PvtMitVba").DataBodyRange
            n = .Cells(.Cells.Count).Row
        End With
        MsgBox "Die letzte Zeile in der Pivottabelle ist: " & n
    End Sub

Alternative Methoden

Neben VBA kannst Du auch die Funktion =ANZAHL2() verwenden, um die letzte Zeile einer Tabelle zu ermitteln. Diese Methode ist besonders nützlich, wenn Du keine Makros verwenden möchtest.

  1. Gehe zu einer Zelle, in der Du die Anzahl der nicht-leeren Zeilen anzeigen möchtest.
  2. Verwende die Formel:

    =ANZAHL2(L11:L1000) 

Diese Formel zählt die nicht-leeren Zellen im Bereich und gibt die Anzahl zurück.


Praktische Beispiele

  • Beispiel 1: Angenommen, Deine Pivottabelle beginnt in Zelle L11 und Du möchtest die letzte Zeile in einer Nachricht anzeigen:

    Sub LetzteZeilePivotBeispiel()
        Dim lz As Long
        lz = Cells(Rows.Count, "L").End(xlUp).Row
        MsgBox "Die letzte Zeile der Pivottabelle ist: " & lz
    End Sub
  • Beispiel 2: Um die letzte Zeile einer Pivottabelle zu selektieren:

    Sub SelektiereLetzteZeile()
        Dim lz As Long
        lz = Cells(Rows.Count, "L").End(xlUp).Row
        ActiveSheet.Cells(lz, "L").Select
    End Sub

Tipps für Profis

  • Wenn Du häufig mit Pivottabellen arbeitest, erstelle Dir eine benutzerdefinierte Funktion, die die letzte Zeile in einer Pivottabelle ermittelt. So kannst Du diese Funktion schnell in verschiedenen Arbeitsmappen verwenden.

  • Verwende Debug.Print, um den Wert der letzten Zeile in das Direktfenster zu drucken. So kannst Du den Wert überprüfen, ohne eine Nachricht anzuzeigen.


FAQ: Häufige Fragen

1. Wie kann ich die letzte Zeile in einer Tabelle ohne VBA ermitteln? Du kannst die Funktion =ANZAHL2(Bereich) verwenden, um die Anzahl der nicht-leeren Zellen zu zählen.

2. Warum gibt mein Makro immer den Wert 1 zurück? Das passiert, wenn die Pivottabelle keine Daten enthält. Stelle sicher, dass die Pivottabelle Daten hat, bevor Du das Makro ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige