Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.04.2014
Version(en): Office 365
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:1 Nutzer sagt Danke an Peter für diesen Beitrag 28
• WillWissen
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
02.06.2018, 16:39
(Dieser Beitrag wurde zuletzt bearbeitet: 02.06.2018, 16:40 von RPP63.)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• WillWissen
Registriert seit: 12.04.2014
Version(en): Office 365
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:1 Nutzer sagt Danke an Peter für diesen Beitrag 28
• WillWissen
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
(02.06.2018, 16: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)
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
(02.06.2018, 17: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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• WillWissen
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Ralf, vielen Dank.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)