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

Forumthread: Berechnetes Pivotfield aus Tabelle löschen

Berechnetes Pivotfield aus Tabelle löschen
06.11.2013 08:51:08
pastinake
Guten Morgen!
Ich habe eine dynamisch befüllte Pivottabelle, bei der auswahlabhängig Daten und Spaltenfelder gelöscht und gesetzt werden.
Das Löschen ging unter Excel 2003 mit DataLabelRange.Delete recht einfach.
Wenn aber nun ein berechnetes Feld dabei ist,- wird dieses unter Excel 2007 nicht gelöscht. Auch mit Orientation = xlHidden geht es nicht.
Jemand eine Idee, wie ich auch diese Fälle sauber abarbeiten kann?
Danke für Eure Mühe
Bernd

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechnetes Pivotfield aus Tabelle löschen
06.11.2013 10:45:27
Luschi
Hallo Bernd,
habe Dein Problem gerade mal mit Exce 2003 & 2010 getestet und da klappt es wie es soll:
ActiveSheet.PivotTables("xxx").DataLabelRange.Delete
und der Datenbereich für die Wertfelder ist total leer.
Wie das mit Excel 2007 ist, kann ich erst heute Abend testen.
Gruß von Luschi
aus klein-Paris
PS: Solche dynamischen PT's lösche ich immer mit
ActiveSheet.PivotTables("xxx").TableRange2.Delete und baue sie mit Vba entsprechend
den gegebenen Bedingungen neu auf.

Anzeige
AW: Berechnetes Pivotfield aus Tabelle löschen
06.11.2013 11:59:14
pastinake
Hallo Luschi,
die gesamte TableRange zu löschen ist aufgrund der Komplexität meiner Pivot nicht hilfreich.
Dennoch Danke für Deine Idee.
Als Anlage mal eine kleine "Spielumgebung". Bei mir löscht er das Datenfeld nicht...
https://www.herber.de/bbs/user/87960.xls
Aus Düsseldorf nach Düsseldorf
/bernd

Anzeige
AW: Berechnetes Pivotfield aus Tabelle löschen
06.11.2013 14:05:13
Luschi
Hallo Bernd,
'DataLabelRange' kann in Deinem Beispiel nicht klappen, da die die Kalkulationsformel im 'DataBodyRange' steht. Diesen kann man aber auch nicht Löschen auf Grund dieses berechneten Feldes.
Bei mir (Excel 2010) klappt das Entfernen und Wiedererstellen so:

Sub DataField_Loeschen_Erstellen()
Dim pvT As PivotTable
Dim pvF As PivotField
Set pvT = Me.PivotTables(1)
With pvT
'funktioniert beides NICHT
'.CalculatedFields("Quote").Delete
'.CalculatedFields(1).Delete
'nur so!
Me.PivotTables("PivotTable1").CalculatedFields("Quote").Delete
Set pvF = .CalculatedFields.Add("Quote", "=Feld2 /Feld1", True)
'Set pvF = .PivotFields("Quote").Orientation = xlDataField
pvF.Orientation = xlDataField
'.PivotFields("Summe von Quote").NumberFormat = "0.00%"
pvF.NumberFormat = "0.00%"
End With
Set pvF = Nothing
Set pvT = Nothing
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Berechnetes Pivotfield aus Tabelle löschen
07.11.2013 10:41:13
pastinake
Guten Morgen,
ich habe gestern Abend noch ein wenig herumgespielt. Es zeigten sich sehr interessante Effekte.
Beispiel:
Wenn in der Tabelle berechnete Felder enthalten sind, so wird mit DataLabelRange.Delete alles bis auf das letzte Feld gelöscht. Auch die berechneten! Wenn das letzte Feld ein "normales Wertefeld" ist, kann dieses über .Orientation = xlHidden ausgeblendet werden.
Ist somit möglich, mit einem Dummy zu arbeiten.
Gelöst habe ich es jedoch ähnlich wie Du,- nur lese ich mir das berechnete Feld vor dem Löschen aus und stelle es anhand der ausgelesenen Parameter wieder her.

' DataFields löschen
If Not .DataFields.Count 
Ich pers. halte das Verhalten von Excel an dieser Stelle für einen kräftigen BUG und meine Lösung ist durch die Brust in's Auge,- aber funktioniert erst einmal.
Dir meinen Dank für's Kümmern
Bernd

Anzeige
AW: Berechnetes Pivotfield aus Tabelle löschen
07.11.2013 13:59:27
Luschi
Hallo Bernd,
da gibt es in der PvT-Programmierung noch mehr Änderungen gegenüber E_2003.
Natürlich ein Ärgernis für jeden Vba-Programmierer, bei dem die Programme
versionsübergreifend funktionieren sollen.
1 Problem gelöst, sicher steht das nächste schon vor der Tür.
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Berechnetes Pivotfeld aus Tabelle löschen


Schritt-für-Schritt-Anleitung

Um ein berechnetes Feld in einer Pivot-Tabelle zu löschen, kannst du die folgenden Schritte befolgen. Diese Anleitung gilt für Excel 2007 und höher.

  1. Öffne die Excel-Datei mit der Pivot-Tabelle.

  2. Wechsel in den VBA-Editor (ALT + F11).

  3. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (deinWorkbookName)“ > Einfügen > Modul.

  4. Gebe den folgenden VBA-Code ein:

    Sub BerechnetesFeldLoeeschen()
       Dim pvT As PivotTable
       Set pvT = ActiveSheet.PivotTables(1) ' Ersetze die 1 mit der entsprechenden Nummer deiner Pivot-Tabelle
    
       ' Versuche das berechnete Feld zu löschen
       On Error Resume Next ' Ignoriere Fehler, falls das Feld nicht existiert
       pvT.CalculatedFields("DeinBerechnetesFeld").Delete
       On Error GoTo 0 ' Fehlerüberprüfung wieder aktivieren
    End Sub
  5. Ersetze "DeinBerechnetesFeld" durch den Namen des berechneten Feldes, das du löschen möchtest.

  6. Führe das Makro aus: Drücke F5 oder wähle „Ausführen“ im Menü.


Häufige Fehler und Lösungen

  • Fehler: "Der angegebene Name ist ungültig."

    • Lösung: Überprüfe den Namen des berechneten Feldes. Stelle sicher, dass er genau übereinstimmt.
  • Fehler: "Das berechnete Feld kann nicht gelöscht werden."

    • Lösung: Stelle sicher, dass das Feld nicht Teil einer Berechnung ist, die von anderen Feldern abhängt.
  • Das Datenfeld wird nicht gelöscht.

    • Lösung: Es könnte an der Verwendung von DataLabelRange.Delete liegen. Versuche stattdessen, das berechnete Feld direkt zu löschen, wie im obigen Makro gezeigt.

Alternative Methoden

  1. Manuelles Löschen über das PivotTable-Feldlistenfenster:

    • Klicke mit der rechten Maustaste auf das berechnete Feld in der PivotTable-Feldliste und wähle „Löschen“.
  2. Die gesamte Pivot-Tabelle löschen:

    • Wenn du die gesamte Pivot-Tabelle entfernen möchtest, klicke mit der rechten Maustaste auf die Pivot-Tabelle und wähle „PivotTable löschen“.

Praktische Beispiele

  • Beispiel für das Löschen eines berechneten Feldes:

    Sub BeispielBerechnetesFeldLoeschen()
      Dim pvT As PivotTable
      Set pvT = ActiveSheet.PivotTables("PivotTable1")
      pvT.CalculatedFields("Quote").Delete
    End Sub
  • Nutzen von TableRange2 um die gesamte Pivot-Tabelle zu löschen:

    Sub PivotTabelleLoeschen()
      ActiveSheet.PivotTables("PivotTable1").TableRange2.Clear
    End Sub

Tipps für Profis

  • Backup erstellen: Vor dem Löschen von Pivot-Feldern oder Tabellen, erstelle immer ein Backup deiner Datei.
  • Verwendung von On Error Resume Next: Dies hilft, das Makro ohne Unterbrechungen weiterlaufen zu lassen, wenn ein bestimmtes Feld nicht existiert.
  • Regelmäßiges Testen: Teste dein VBA-Skript in einer Testumgebung, bevor du es in produktiven Dateien anwendest.

FAQ: Häufige Fragen

1. Wie kann ich ein berechnetes Feld in Excel 2003 löschen? Du kannst das gleiche VBA-Skript verwenden, jedoch kann die Syntax leicht variieren. Überprüfe die Excel-Version und passe den Code entsprechend an.

2. Was passiert, wenn ich ein berechnetes Feld lösche? Wenn du ein berechnetes Feld löscht, werden alle Berechnungen, die auf diesem Feld basieren, ebenfalls entfernt. Stelle sicher, dass du die Auswirkungen verstehst, bevor du fortfährst.

3. Kann ich ein berechnetes Feld wiederherstellen, nachdem ich es gelöscht habe? Einmal gelöscht, kann ein berechnetes Feld nicht wiederhergestellt werden, es sei denn, du hast eine Sicherungskopie der Datei oder du hast den Code, um das Feld erneut zu erstellen.

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