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

Forumthread: Pivot mit Blattschutz aktualisieren

Pivot mit Blattschutz aktualisieren
03.02.2018 20:31:40
Robert
Guten Abend,
https://www.herber.de/bbs/user/119514.xlsm
ich würde die Pivot-Tabelle mit Blattschutz (Kennwort beider Arbeitsblätter: 123) ganz gerne aktualisieren.
Ich habe mir schon etliche male ein Marko aufgezeichnet, das ich nach jeder Änderung wieder neu aufzeichnen musste, da es nicht mehr funktionierte.
Kann mir vielleicht jemand helfen das Problem zu lösen, dass ich das Marko nicht ständig neu aufzeichnen muss.
Das wäre super.
Leider habe ich nur Macrorecorder-Kenntnisse und schaffe es nicht einfache Befehle zum laufen zu kriegen.
VG
Robert
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot mit Blattschutz aktualisieren
03.02.2018 21:39:10
Luschi
Hallo Robert,
bei mir klappt das so:

Sub PT_Refresh()
With ActiveSheet
.Unprotect "123"
.PivotTables("PivotTable1").PivotCache.Refresh
.Protect "123", DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
AllowUsingPivotTables:=True, UserInterfaceOnly:=True
End With
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot mit Blattschutz aktualisieren
03.02.2018 22:40:38
Robert
Hi Luschi,
danke für die schnelle Antwort.
Klappt super in diesem Tabellenblatt, aber wenn ich die Daten in ein anderes übernehme, dann klappt es leider nicht.
Wie muss die Zeile abgeändert werden?
PivotTables("PivotTable1").PivotCache.Refresh
Wenn bei 5 Arbeitsblättern Blatt Nr.3 V_Server (Tabelle mit den Daten für Pivot) und Blatt Nr. 4 V_Pivot (Arbeitsblatt mit der Pivot-Tabelle) heißt?
VG
Robert
Anzeige
AW: Pivot mit Blattschutz aktualisieren
03.02.2018 22:40:41
Robert
Hi Luschi,
danke für die schnelle Antwort.
Klappt super in diesem Tabellenblatt, aber wenn ich die Daten in ein anderes übernehme, dann klappt es leider nicht.
Wie muss die Zeile abgeändert werden?
PivotTables("PivotTable1").PivotCache.Refresh
Wenn bei 5 Arbeitsblättern Blatt Nr.3 V_Server (Tabelle mit den Daten für Pivot) und Blatt Nr. 4 V_Pivot (Arbeitsblatt mit der Pivot-Tabelle) heißt?
VG
Robert
Anzeige
AW: Pivot mit Blattschutz aktualisieren
04.02.2018 06:40:02
Luschi
Hallo Robert,
dann tauscht Du einfach aus:
With ActiveSheet
gegen With ThisWorkbook.Worksheets("V_Pivot")
oder machtst es noch ein bischen variabler:

Sub MachMal()
Call PT_Refresh("V_Pivot", "PivotTable1", "123")
End Sub
Sub PT_Refresh(xTab As String, xPiv As String, xKW As String)
Dim pvT As PivotTable
With ThisWorkbook.Worksheets(xTab)
.Unprotect xKW
.PivotTables(xPiv).PivotCache.Refresh
.Protect xKW, DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
AllowUsingPivotTables:=True, UserInterfaceOnly:=True
End With
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot mit Blattschutz aktualisieren
04.02.2018 08:05:09
Robert
Hallo Luschi,
für die erste Tabelle hat es geklappt (glaub ich).
Aber der 2 Code macht noch Zicken.
Kannst du hier
https://www.herber.de/bbs/user/119525.xlsm
nochmal drüber schauen was ich falsch gemacht habe.
VG
Robert
Anzeige
AW: Pivot mit Blattschutz aktualisieren
04.02.2018 08:56:07
Luschi
Hallo Robert,
2 Fehler:
- falsches Makro
- falscher Pivot-Tabellen-Name
hier meine Korrekturen: https://www.herber.de/bbs/user/119526.xlsm
Gruß von Luschi
aus klein-Paris
AW: Pivot mit Blattschutz aktualisieren
04.02.2018 09:41:44
Robert
Hi Luschi,
danke für die schnelle Antwort,
warum heißt es PivotTable1?
Wenn das Arbeitsplatt doch Server_2 lautet?
Woher weiß Excel, welches Blatt gemeint ist?
Muss das "Option Explicit" immer drüber stehen? Oder könnte man die auch weg lassen?
Danke nochmal für deine Hilfe
VG
Robert
Anzeige
AW: Pivot mit Blattschutz aktualisieren
04.02.2018 22:06:20
Luschi
Hallo Robert,
Option Explicit - sollte Pflicht sein, wenn man nicht nur hobbymäßg mal was mit Vba
machen will; das kann man auch in den Vba-Editor-Optionen so einstellen, daß dies automatisch geschieht. Beide Pivottabellen haben übrigens den Namen 'PivotTable1'.
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Pivot Tabellen aktualisieren trotz Blattschutz


Schritt-für-Schritt-Anleitung

Um eine Pivot-Tabelle trotz Blattschutz zu aktualisieren, kannst du ein einfaches Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster, wähle Einfügen und dann Modul.
  3. Kopiere den folgenden Code:

    Sub PT_Refresh()
       With ActiveSheet
           .Unprotect "123"
           .PivotTables("PivotTable1").PivotCache.Refresh
           .Protect "123", DrawingObjects:=True, _
           Contents:=True, Scenarios:=True, _
           AllowUsingPivotTables:=True, UserInterfaceOnly:=True
       End With
    End Sub
    • Dieser Code entblättert das Blatt, aktualisiert die Pivot-Tabelle und schützt es anschließend wieder.
  4. Passe den Namen der Pivot-Tabelle an:

    • Stelle sicher, dass der Name der Pivot-Tabelle ("PivotTable1") dem tatsächlichen Namen in deiner Excel-Datei entspricht.
  5. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "PivotTable1" nicht gefunden
    Lösung: Überprüfe den Namen der Pivot-Tabelle und passe den Code entsprechend an.

  • Blatt wird nicht entblättert
    Lösung: Stelle sicher, dass das richtige Kennwort im Code angegeben ist.

  • Makro funktioniert nicht in anderen Blättern
    Lösung: Ändere ActiveSheet zu ThisWorkbook.Worksheets("DeinBlattName"), um das spezifische Arbeitsblatt anzusprechen.


Alternative Methoden

Eine weitere Möglichkeit, die Pivot-Tabelle automatisch zu aktualisieren, besteht darin, die Option "PivotTable automatisch aktualisieren" zu aktivieren:

  1. Klicke mit der rechten Maustaste auf die Pivot-Tabelle und wähle PivotTable-Optionen.
  2. Aktiviere das Kontrollkästchen Daten beim Öffnen der Datei aktualisieren.

Diese Methode funktioniert jedoch nur, wenn der Blattschutz nicht aktiv ist.


Praktische Beispiele

Angenommen, du hast zwei Arbeitsblätter: V_Server (mit den Daten) und V_Pivot (mit der Pivot-Tabelle). Hier ist ein Beispiel für ein Makro, das in diesem Fall funktioniert:

Sub MachMal()
    Call PT_Refresh("V_Pivot", "PivotTable1", "123")
End Sub

Sub PT_Refresh(xTab As String, xPiv As String, xKW As String)
    With ThisWorkbook.Worksheets(xTab)
        .Unprotect xKW
        .PivotTables(xPiv).PivotCache.Refresh
        .Protect xKW, DrawingObjects:=True, _
        Contents:=True, Scenarios:=True, _
        AllowUsingPivotTables:=True, UserInterfaceOnly:=True
    End With
End Sub

Tipps für Profis

  • Kennwortsicherheit: Verwende ein starkes Kennwort, um den Blattschutz zu gewährleisten.
  • Option Explicit: Setze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind.
  • Automatische Aktualisierung: Du kannst auch eine VBA-Prozedur erstellen, die die Pivot-Tabelle bei jeder Änderung in den Quelldaten aktualisiert.

FAQ: Häufige Fragen

1. Warum muss ich das Kennwort im Makro angeben?
Das Kennwort ist notwendig, um die Blätter zu entblättern und zu schützen. Ohne das richtige Kennwort kannst du die Pivot-Tabelle nicht aktualisieren.

2. Kann ich die Pivot-Tabelle ohne Makro aktualisieren?
Ja, du kannst die Pivot-Tabelle manuell aktualisieren, indem du mit der rechten Maustaste auf die Tabelle klickst und Aktualisieren wählst, jedoch funktioniert dies nicht bei aktivem Blattschutz.

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