Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PivotTabellenNamen ermitteln

PivotTabellenNamen ermitteln
26.04.2005 11:32:22
harry
Hi leute,
stehe vor einem neuen Problem.
Ich will in meinem Workbook alle PivotTabellenNamen
in einem Array speichern. Habe folgendes bis jetzt:
-----------------------------------------------------
Option Base 1
-----------------------------------------------------

Sub PivottabelleVerlinken()
Dim Tabelle As Worksheet
Dim pt As PivotTable
Dim PivotTabellenName As String
Dim anzPT As Integer
Dim arrPT()
anzPT = 100
On Error GoTo ErrorMessage
Application.DisplayAlerts = False
Application.EnableEvents = False
For Each Tabelle In ActiveWorkbook.Worksheets
Tabelle.Activate
Tabelle.Unprotect ("")
For Each pt In ActiveSheet.PivotTables
ReDim arrPT(anzPT) ' Neue Größe des Arrays wird zugeteilt
PivotTabellenName = TableName  ' Hier wird leider nichts gespeichert !!!
Next pt
Next Tabelle
Application.DisplayAlerts = True
Application.EnableEvents = True
ErrorMessage:
Ende:
End Sub

-----------------------------------------------------
Der code ist zwar noch Lückenhaft, aber wollte fragen
wie der genaue Befehl für den TabellenNamen lautet.
Außerdem vergebe ich hier statisch die ArrayGröße.
Kann ich da nicht irgendwie die Anzahl der PT ermitteln und
dan dem Array übergeben?
Gruß
Harry
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: PivotTabellenNamen ermitteln
26.04.2005 11:44:42
harry
Problem fast gelöst :)
Hier der Code
For Each Tabelle In ActiveWorkbook.Worksheets
Tabelle.Activate
Tabelle.Unprotect ("")
For Each pt In ActiveSheet.PivotTables
ReDim arrPT(anzPT) ' Neue Größe des Arrays wird zugeteilt
For x = 1 To anzPT ' Die Groupe wird durchlaufen
arrPT(x) = ActiveSheet.PivotTables(x).Name ' und die Items.Namen gespeichert
Next x
Next pt
Next Tabelle
Nun will ich noch das die Vergabe der Array Größe dynamisch passiert ...
Irgendeiner eine Ideee?
Anzeige
AW: PivotTabellenNamen ermitteln
26.04.2005 11:48:04
harry
Auch gefunden :)
lol
Also die Anzahl der PivotTabellen ermitteln mit dem Befehl :
anzPT = ActiveSheet.PivotTables().Count 'Speichere Anzahl der PivotTabellen
Thx :)
;
Anzeige
Anzeige

Infobox / Tutorial

PivotTabellenNamen ermitteln: So geht's


Schritt-für-Schritt-Anleitung

Um alle PivotTabellenNamen in einem Array zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser Code durchläuft alle Arbeitsblätter und speichert die Namen der PivotTabellen in einem dynamischen Array.

Sub PivottabelleVerlinken()
    Dim Tabelle As Worksheet
    Dim pt As PivotTable
    Dim PivotTabellenName As String
    Dim anzPT As Integer
    Dim arrPT() As String
    Dim i As Integer

    ' Zähle die Anzahl der PivotTabellen
    anzPT = 0
    For Each Tabelle In ActiveWorkbook.Worksheets
        anzPT = anzPT + Tabelle.PivotTables.Count
    Next Tabelle

    ' Array-Größe dynamisch zuweisen
    ReDim arrPT(1 To anzPT)

    i = 1
    For Each Tabelle In ActiveWorkbook.Worksheets
        Tabelle.Activate
        Tabelle.Unprotect ("")
        For Each pt In ActiveSheet.PivotTables
            arrPT(i) = pt.Name ' Speichere den Namen der PivotTabelle
            i = i + 1
        Next pt
    Next Tabelle

    Application.DisplayAlerts = True
    Application.EnableEvents = True
End Sub

Dieser Code zählt zuerst die Anzahl der PivotTabellen in allen Arbeitsblättern und weist dann die Größe des Arrays dynamisch zu. Danach werden die Namen der PivotTabellen gespeichert.


Häufige Fehler und Lösungen

  1. Fehler beim Zugriff auf PivotTabellen

    • Problem: Du erhältst eine Fehlermeldung, wenn Du versuchst, auf die PivotTabellen zuzugreifen.
    • Lösung: Stelle sicher, dass das Arbeitsblatt nicht geschützt ist. Der Code enthält bereits die Zeile Tabelle.Unprotect (""), um dies zu berücksichtigen.
  2. Leeres Array

    • Problem: Das Array bleibt leer, obwohl PivotTabellen vorhanden sind.
    • Lösung: Überprüfe, ob Du die Anzahl der PivotTabellen korrekt zählst. Achte darauf, dass die Zählung vor der Zuweisung des Arrays erfolgt.

Alternative Methoden

Anstelle von VBA kannst Du auch Excel-Formeln nutzen, um die Namen der PivotTabellen anzuzeigen. Eine Möglichkeit wäre, die PivotTable-Analyse-Tools zu verwenden und die PivotTabellen manuell aufzulisten. Dies ist jedoch weniger automatisiert und kann bei vielen Tabellen unpraktisch sein.


Praktische Beispiele

Nehmen wir an, Du hast ein Workbook mit mehreren PivotTabellen. Nachdem Du den oben genannten Code ausgeführt hast, kannst Du die Namen der PivotTabellen in einem Array verwenden, um sie beispielsweise in einer UserForm oder zur weiteren Analyse anzuzeigen.

For i = LBound(arrPT) To UBound(arrPT)
    Debug.Print arrPT(i) ' Gibt die Namen im Direktfenster aus
Next i

Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang Deines Moduls Option Explicit hinzu, um sicherzustellen, dass Du alle Variablen deklarierst. Dies hilft, Fehler zu vermeiden.
  • Fehlerbehandlung: Implementiere eine bessere Fehlerbehandlung, um potenzielle Probleme zu identifizieren und zu lösen.
  • Modularer Code: Teile den Code in kleinere, wiederverwendbare Subroutinen auf, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich die Namen der PivotTabellen in eine Excel-Tabelle schreiben?
Du kannst die Namen der PivotTabellen in eine Excel-Zelle schreiben, indem Du die Cells-Eigenschaft mit einer Schleife verwendest, um die Namen in eine Spalte zu schreiben.

2. Was passiert, wenn das Arbeitsblatt geschützt ist?
Wenn das Arbeitsblatt geschützt ist, kann der Code nicht auf die PivotTabellen zugreifen. Stelle sicher, dass das Arbeitsblatt ungeschützt ist, bevor Du den Code ausführst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige