Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

PT per Makro mit Doppelklick akualisieren
#1
Hallo zusammen,

was muss ich tun, damit der aufgezeichnete Einzeiler
Code:
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
mit einem Doppelklick ausgelöst werden kann. Ich weiß, dass aus Sub() Private Sub werden muss. Aber außer Makros aufzeichnen und einem Button zuordnen habe ich bislang noch nicht viel mit Makros getan.

Danke für eure Tipps.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#2
Hallo,

hast du es schon mal so pobiert?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
End Sub


Aber Achtung: VBA ist auch nicht mein Ding.
Gruß
Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Peter für diesen Beitrag:
  • WillWissen
Antworten Top
#3
Hallo Peter,

vielen Dank. Jetzt kann ich weiter "rumspielen"; ich hatte nicht gewusst, wie ich zu Private... komme. Dank deiner Lösung habe ich den Schalter gefunden.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#4
Moin!
Auch wenn Peters Code funktionieren dürfte:
ActiveSheet. ist im Ereignismakro Me.
(kann aber wohl auch weggelassen werden)
In einem Ereignismakro würde ich zusätzlich immer das Target auswerten:
If Not Intersect(Target, Range("A1:D1")) Is Nothing Then 'Code

Außerdem sollte der eigentliche Zweck des Doppelklicks, nämlich in den Bearbeitungsmodus zu wechseln, mittels Cancel = True abgeschaltet werden.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • WillWissen
Antworten Top
#5
Hallo,

wenn ich bei einer PT VBA verwende dann eigentlich einer dieser Code die ich aus einem Posting von Thomas Ramel habe.

Wenn die PT in einem separaten Tabellenblatt stehe dann verwende ich diesen Code der beim Wechseln auf das Tabellenblatt aktiviert wird

Code:
Private Sub Worksheet_Activate()
Dim pt As PivotTable
   For Each pt In ActiveSheet.PivotTables
      pt.RefreshTable
   Next pt
End Sub


Wenn die Pivot-Tabelle im gleichen Arbeitsblatt ist dann habe ich öfters einfach einen CommandButton verwendet und den folgenden Code hinterlegt:

Code:
Private Sub CommandButton1_Click()
Dim pt As PivotTable
   For Each pt In ActiveSheet.PivotTables
'For Each pt In Worksheets("Tabelle1").PivotTables
      pt.RefreshTable
   Next pt
End Sub

Zwischenzeitlich verwende ich aber meist den Aktualisieren-Button aus den PivotTable-Tools.
Gruß
Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Peter für diesen Beitrag:
  • WillWissen
Antworten Top
#6
(02.06.2018, 15:53)Peter schrieb: Zwischenzeitlich verwende ich aber meist den Aktualisieren-Button aus den PivotTable-Tools.

Richtig!
Ich nehme den Rechtsklick und wähle aus dem Kontextmenue aktualisieren.
Ganz ohne VBA, obwohl ich Fan bin.  :21:

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Hi Ralf,

die Idee, den DK nicht auf dem ganzen Blatt auszuführen ist gut. Allerdings bitte ich um kurze Erklärung, was es mit dem Ausschalten des DK auf sich hat, das habe ich nicht verstanden.

@Peter

Deine beiden Makros habe ich mal in meine Sammlung für alle Fälle aufgenommen. Danke.

Zur Erklärung des Ganzen:
es handelt sich ausschließlich um das Üben eines Makroaufbaus am Beispiel eines Doppelklicks - in echten Tabellen benutze ich auch nur das Kontextmenü. Ich habe ja jetzt etwas Zeit und will mal sehen, ob ich noch in der Lage bin, etwas neues zu lernen. VBA war bislang eher abschreckend für mich.

Euch beiden vielen Dank.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#8
(02.06.2018, 16:13)WillWissen schrieb: bitte ich um kurze Erklärung, was es mit dem Ausschalten des DK auf sich hat, das habe ich nicht verstanden.

Wenn Du in einem "normalen" Tabellenblatt ohne Ereignismakros in eine Zelle doppelklickst, wechselst Du in den Bearbeitungsmodus, genauso als wenn Du F2 drückst, Günter.
Willst Du den DK als Auslöser eines Makros nutzen, wird zunächst der Code "ganz normal" abgearbeitet (deshalb ja auch BeforeDoubleClick).
Um NICHT in den Bearbeitungsmodus zu wechseln, was in der Regel ja auch nicht gewünscht ist, gibt es den Cancel-Parameter, dem als Argument explizit = False mitgegeben werden muss.
Ob am Ende des Makros oder sonstwo, ist egal.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • WillWissen
Antworten Top
#9
Ralf, vielen Dank.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste