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

VBA: Die PivotTables-Eigenschaft des ....

Forumthread: VBA: Die PivotTables-Eigenschaft des ....

VBA: Die PivotTables-Eigenschaft des ....
01.06.2016 16:40:02
Honigdachs
Servus,
ich komme bei folgendem Code nicht weiter wegen der Fehlermeldung Die PivotTables-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden.:
Sub pivot_tables()
Dim PT As PivotTable, PTField As PivotField
Dim location As String
Dim first_year As Integer
Dim last_year As Integer
Set PT = Sheets("scorecard data - 1").PivotTables("PivotTable1")
location = Worksheets("event detection").Range("B1")
first_year = Worksheets("event detection").Range("E2").Value
last_year = Worksheets("event detection").Range("E6").Value
With PT
.ManualUpdate = True
For Each PTField In .DataFields
PTField.Orientation = xlHidden
Next PTField
.ManualUpdate = False
End With
For i = first_year To last_year
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & CStr(i)), "number of companies in " & i, xlSum
Next
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable1").PivotFields("country").AutoSort _
xlDescending, "number of companies in 2015"
End Sub
Der Fehler liegt im fett geschriebenen Teil, aber ich weiß nicht, wie ich ihn beheben kann? Habt ihr Tipps?
Danke!

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Die PivotTables-Eigenschaft des ....
01.06.2016 17:08:51
Luschi
Hallo Honigdachs,
das ist nun schon Deine 3. Frage zu Vba-Pivot-Tabellen in kurzer Zeit und niemand hat bischer einen Versuch unternommen, eine Antwort zu verfassen.
Das liegt daran, das gerade hier der Vba-Fehler-Teufel im Detail steckt.
Mache eine kleines Demo-Beispiel mit Testdaten, die im Wesentlichen dem Praxisbeispiel entsprechen.
Dann hat der Vba-Helfer (und davon gibt es in diesem Forum jede Menge) was in der Hand, mit dem man testen/verbessern kann.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: VBA: Die PivotTables-Eigenschaft des ....
02.06.2016 09:11:52
Honigdachs
Hallo Luschi,
bitte entschuldigt die Verwirrung, die ich hier verursacht habe.
Hier ist eine Beispieldatei, aus der man jetzt vielleicht schlauer wird:
https://www.herber.de/bbs/user/105921.xlsm
Danke!

AW: VBA: Die PivotTables-Eigenschaft des ....
03.06.2016 06:57:55
Luschi
Hallo Honigdachs,
irgendwas paßt nicht mit dem gepostetem Code und der bereitgestellten xlsm-Datei zusammen:-
- es gibt kein Tabellenblatt 'scorecard data - 1'
- Zelle Worksheets("event detection").Range("E6").Value ist leer
Gruß von Luschi
aus kleinParis

Anzeige
AW: VBA: Die PivotTables-Eigenschaft des ....
08.06.2016 14:07:25
Honigdachs
Da habe ich leider vergessen, richtig umzubenennen, aber ich habe die Lösung:
Sub pivot_tables_1()
Dim PT As PivotTable, PTField As PivotField
Dim location As String
Dim first_year As Integer
Dim y As Long
Dim last_year As Integer
Dim k As Integer
Set PT = Sheets("scorecard data - 1").PivotTables("PivotTable1")
location = Worksheets("event detection").Range("B1")
first_year = Worksheets("event detection").Range("E2").Value
Worksheets("event detection").Activate
Range("E1").Select
y = Cells.Find(What:=" ", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious). _
Row - 1
last_year = Worksheets("event detection").Range("E" & y).Value
k = Worksheets("dates detection").Range("K2").Value
With PT
.ManualUpdate = True
For Each PTField In .DataFields
PTField.Orientation = xlHidden
Next PTField
.ManualUpdate = False
End With
Sheets("scorecard data - 1").Activate
For i = first_year To last_year
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1"). _
PivotFields(location & " " & i), "number of companies " & i, xlSum
Next
Worksheets("scorecard data - 1").Activate
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
ActiveSheet.PivotTables("PivotTable1").PivotFields("country").AutoSort _
xlDescending, "number of companies " & k
ActiveSheet.Calculate
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Fehlerbehebung bei der PivotTables-Eigenschaft in Excel VBA


Schritt-für-Schritt-Anleitung

Um den Fehler „Die PivotTables-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden“ zu beheben, folge diesen Schritten:

  1. Überprüfe das Arbeitsblatt und die PivotTable: Stelle sicher, dass das Arbeitsblatt „scorecard data - 1“ und die PivotTable „PivotTable1“ tatsächlich existieren. Du kannst dies in Excel überprüfen.

  2. Setze die Variablen: Achte darauf, dass die Variablen first_year und last_year korrekt gesetzt sind. Diese Werte stammen aus den Zellen E2 und E6 des Arbeitsblattes „event detection“.

  3. Aktivierung des Arbeitsblattes: Stelle sicher, dass du das richtige Arbeitsblatt aktivierst, bevor du auf die PivotTable zugreifst. Verwende Worksheets("event detection").Activate.

  4. Code-Block anpassen: Ändere den fehlerhaften Code-Block. Hier ist ein Beispiel für eine modifizierte Version:

    ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables("PivotTable1").PivotFields(location & " " & CStr(i)), "number of companies in " & i, xlSum
  5. Fehler durch leere Zellen vermeiden: Überprüfe, ob die Zelle Worksheets("event detection").Range("E6") leer ist, da dies ebenfalls zu Fehlern führen kann.


Häufige Fehler und Lösungen

  • Fehler: „Die PivotTables-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden“

    • Lösung: Überprüfe den Namen des Arbeitsblatts und der PivotTable. Stelle sicher, dass diese korrekt eingegeben sind.
  • Leere Zellen im Code

    • Lösung: Achte darauf, dass die Zellen, von denen Du Daten abrufst, nicht leer sind.
  • Falsches Arbeitsblatt aktiv

    • Lösung: Aktiviere das richtige Arbeitsblatt, bevor Du auf die PivotTable zugreifst.

Alternative Methoden

Wenn Du weiterhin Probleme mit der activeSheet.PivotTables-Methode hast, kannst Du folgende Alternativen in Betracht ziehen:

  • Verwendung der Worksheets-Objekte: Greife direkt über das Worksheets-Objekt auf die PivotTables zu, anstatt ActiveSheet zu verwenden.

    Worksheets("scorecard data - 1").PivotTables("PivotTable1").AddDataField ...
  • Erstelle die PivotTable neu: Wenn Anpassungen nicht funktionieren, könnte es sinnvoll sein, die PivotTable neu zu erstellen, um sicherzustellen, dass alle Datenquellen korrekt sind.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das die Verwendung von vba pivottables demonstriert:

Sub CreatePivotTable()
    Dim ws As Worksheet
    Dim PT As PivotTable
    Dim PTCache As PivotCache

    Set ws = Worksheets("scorecard data - 1")
    Set PTCache = ThisWorkbook.PivotCaches.Create( _
                  SourceType:=xlDatabase, _
                  SourceData:=ws.Range("A1:D100")) ' Beispielbereich

    Set PT = PTCache.CreatePivotTable( _
              TableDestination:=ws.Range("F1"), _
              TableName:="PivotTable2")
End Sub

Tipps für Profis

  • Verwende With-Blöcke: Wenn Du mehrfach auf dasselbe Objekt zugreifst, wickle den Code in einen With-Block, um die Leistung zu verbessern.

  • Datenstruktur optimieren: Achte darauf, dass Deine Daten gut strukturiert sind, um die Erstellung von excel vba pivottables zu vereinfachen.

  • Fehlerbehandlung einbauen: Implementiere On Error Resume Next, um den Code robuster zu machen und unerwartete Fehler abzufangen.


FAQ: Häufige Fragen

1. Wie kann ich die PivotTables-Eigenschaft in einer Schleife verwenden? Du kannst eine Schleife verwenden, um über alle PivotTables in einem Arbeitsblatt zu iterieren, indem Du die PivotTables-Sammlung des Arbeitsblatts verwendest.

2. Was mache ich, wenn meine PivotTable nicht aktualisiert wird? Stelle sicher, dass der PivotCache aktualisiert wird, und verwende den Befehl PivotTables("PivotTableName").PivotCache.Refresh.

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