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

Forumthread: VBA: AKTIVE PivotTabelle ansprechen

VBA: AKTIVE PivotTabelle ansprechen
16.11.2020 15:46:23
Andrea
Hallo,
ich habe folgendes Makro aufgezeichnet:
Range("A49:B58").Select
Selection.Copy
Range("D60").Select
ActiveSheet.Paste
ActiveSheet.ActivePivotTables("PivotTable9").ConvertToFormulas True
Range("A49:B58") ist eine PivotTabelle.
Nach Ausführung der Anweisung "ActiveSheet.Paste" ist die neu eingefügte PivotTabelle bereits ausgewählt.
Bei der letzten Anweisung unterbricht das Makro bei erneuter Ausführung, da es sich dann schon nicht mehr um die PivotTable9, sondern die 10 handelt!
Wie stelle ich es an, dass in der bereits selektierten, neu eingefügten PivotTabelle die Anweisung ConvertToFormulas ausgeführt wird, ohne zu wissen, wie die die neue PivotTabelle heißt?
Danke und schöne Grüße
Andrea
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: AKTIVE PivotTabelle ansprechen
16.11.2020 17:12:28
Yal
Hallo Andrea,
"Pivottables" ist eine Collection (Auflistung). Wir können annehmen, dass neue Objekte immer als letzte Objekt hinzugefügt wird, und daher durch die Anzahl von Element in der Auflistung erreichbar ist.
Dim WS As Worksheet
Dim C As PivotTable
Set WS = ThisWorkbook.Worksheets("Tabelle4")
Set C = WS.PivotTables(WS.PivotTables.Count)
...
Viel Erfolg
Yal
Anzeige
AW: VBA: AKTIVE PivotTabelle ansprechen
16.11.2020 17:28:10
fcs
Hallo Andrea,
probiere es mal so:
Sub CopyPivot_ConvertToCubeFormulas()
' Copy_Pivot Makro
' Pivot kopieren und in Cube-Formeln umwandeln.
Dim pvTab As PivotTable
Dim strPivotName As String
Range("A49").Select
Set pvTab = Selection.PivotTable
pvTab.TableRange2.Copy
Range("D60").Select
ActiveSheet.Paste
strPivotName = Selection.PivotTable.Name
Application.CutCopyMode = False
ActiveSheet.PivotTables(strPivotName).ConvertToFormulas True
End Sub
LG
Franz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA: Aktive PivotTabelle ansprechen


Schritt-für-Schritt-Anleitung

Um die aktive PivotTabelle in VBA anzusprechen und sie in Formeln zu konvertieren, kannst du das folgende Makro verwenden:

Sub CopyPivot_ConvertToCubeFormulas()
    ' Pivot kopieren und in Cube-Formeln umwandeln.
    Dim pvTab As PivotTable
    Dim strPivotName As String
    Range("A49").Select
    Set pvTab = Selection.PivotTable
    pvTab.TableRange2.Copy
    Range("D60").Select
    ActiveSheet.Paste
    strPivotName = Selection.PivotTable.Name
    Application.CutCopyMode = False
    ActiveSheet.PivotTables(strPivotName).ConvertToFormulas True
End Sub
  1. PivotTabelle auswählen: Das Makro beginnt damit, die PivotTabelle auszuwählen, die sich in der Zelle A49 befindet.
  2. Kopieren der PivotTabelle: Die gesamte Tabelle wird in die Zwischenablage kopiert.
  3. Einfügen der PivotTabelle: Die kopierte PivotTabelle wird in die Zelle D60 eingefügt.
  4. Konvertieren in Formeln: Der Name der neu eingefügten PivotTabelle wird abgerufen und anschließend in Formeln umgewandelt.

Häufige Fehler und Lösungen

  • Fehler: Das Makro bricht ab, weil die PivotTabelle nicht gefunden wird.

    • Lösung: Stelle sicher, dass die PivotTabelle an der richtigen Stelle ausgewählt ist. Wenn sich die Tabelle geändert hat, musst du eventuell die Auswahl anpassen.
  • Fehler: Es wird nicht die letzte PivotTabelle angesprochen.

    • Lösung: Nutze die Count-Eigenschaft, um immer die letzte PivotTabelle anzusprechen, wie in diesem Beispiel gezeigt:
    Set C = WS.PivotTables(WS.PivotTables.Count)

Alternative Methoden

Wenn du die PivotTabelle nicht durch ihre Namen ansprechen möchtest, kannst du die Collection von PivotTables nutzen, um die letzte Tabelle zu ermitteln:

Dim WS As Worksheet
Dim C As PivotTable
Set WS = ThisWorkbook.Worksheets("Tabelle4")
Set C = WS.PivotTables(WS.PivotTables.Count)
C.ConvertToFormulas True

Diese Methode ist besonders nützlich, wenn du nicht genau weißt, wie die PivotTabelle heißt.


Praktische Beispiele

Hier sind einige praktische Anwendungen des Makros:

  1. Kopieren und Konvertieren mehrerer PivotTabellen: Du kannst das Makro in einer Schleife verwenden, um mehrere PivotTabellen zu kopieren und zu konvertieren.

  2. Integration in größere VBA-Projekte: Integriere dieses Makro in größere Projekte, die Datenanalysen und Berichterstattung automatisieren.


Tipps für Profis

  • Verwende Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen. Zum Beispiel:

    On Error Resume Next
  • Dokumentiere deine Makros: Kommentiere jeden Schritt, um die Wartbarkeit zu erhöhen. Dies ist besonders nützlich, wenn du später Anpassungen vornehmen möchtest.

  • Nutze das Immediate Window: Verwende das Immediate Window in der VBA-Entwicklungsumgebung, um Variablen zu testen und zu debuggen.


FAQ: Häufige Fragen

1. Was ist eine PivotTabelle? Eine PivotTabelle ist ein leistungsfähiges Werkzeug in Excel, mit dem du Daten zusammenfassen und analysieren kannst.

2. Wie kann ich eine PivotTabelle in Formeln umwandeln? Mit dem Befehl ConvertToFormulas kannst du eine PivotTabelle in Formeln umwandeln, was dir ermöglicht, die zugrunde liegenden Berechnungen zu sehen und anzupassen.

3. Welche Excel-Version wird benötigt? Das vorgestellte Makro ist mit Excel 2016 und späteren Versionen kompatibel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige