Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Private Sub Worksheet_Calculate ()

Private Sub Worksheet_Calculate ()
12.01.2017 10:14:14
Dirk
Hallo Forumsmitglieder,
aufgrund meiner folgenden Fragestellung oute ich mich wahrscheinlich gleich als Anfänger - aber das ist leider so :-)
Ich habe eine Pivottabelle in einem Excelblatt. Das Blatt formatiere ich mit Hilfe eines Makros, das direkt am Excelblatt hängt und als "Private Sub Worksheet_Calculate" deklariert ist. Nun ist es aber so, dass ich weitere Blätter mit Pivottabellen habe. Wenn ich nun in diesen anderen Pivottabellen auf anderen Blättern etwas ändere, dann erhalte ich plötzlich den Laufzeitfehler 1004. Wenn ich nun den Degugger starte, dann ist eine Zeile in dem genannten Makrocode gelb unterlegt, der aber auf einem ganz anderen Blatt hängt. Ich verstehe nicht, warum das Makro gestartet wird, obwohl ich es in dem entsprechenden Blatt aus Private Sub deklariert habe und die dortige Pivottabelle ja garnicht neu berechnet (Worksheet Calculate) wird. Kann mir da jemand helfen?
Vielen Dank
Dirk

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Private Sub Worksheet_Calculate ()
12.01.2017 11:27:17
Gunter
Eine Beispieldatei wäre hilfreich.
AW: Private Sub Worksheet_Calculate ()
12.01.2017 11:41:18
Dirk
Hallo Gunter,
so?:
Private Sub Worksheet_Calculate()
Dim pt As PivotTable
Dim Ergebniszeile As Range
Application.ScreenUpdating = False
Me.Cells.Interior.Color = RGB(211, 211, 211)
With ActiveSheet
For Each pt In .PivotTables
pt.TableRange1.Select
Selection.Interior.Color = RGB(255, 255, 255)
pt.ColumnRange.Select
Selection.Interior.Color = RGB(235, 235, 235)
pt.RowRange.Cells(1).Select
Selection.Interior.Color = RGB(235, 235, 235)
'Zeilenkopf
pt.RowRange.Cells(1).Offset(-1, 0).Resize(2, 1).Select
Selection.Interior.Color = RGB(235, 235, 235)
'Ergebniszeile
With pt.RowRange
 Set Ergebniszeile = Range(.Cells(.Cells.Count), .Cells(.Cells.Count).End( _
xlToRight))
End With
Ergebniszeile.Select
Selection.Interior.Color = RGB(255, 255, 0)
Next pt
End With
Columns("A:P").EntireColumn.AutoFit
Application.ScreenUpdating = True
Range("A3").Select
End Sub
An der Stelle, wo ich es fett formatiert habe bleibt es hängen. Danke!
Gruß
Dirk
Anzeige
AW: Private Sub Worksheet_Calculate ()
12.01.2017 12:11:44
Gunter
Kannst du nicht eine Beispieldatei über das Menü "Zum File-Upload" hochladen?
AW: Private Sub Worksheet_Calculate ()
12.01.2017 12:51:22
Dirk
Hallo Gunter,
anbei. Wenn du bspw. im Blatt "Umlagen" in der Pivottabelle Spalte B bei wkB alles rausnimmst und dann das erste Konto mit einem Häkchen versiehst, dann gibt es die Fehlermeldung. Mir ist klar, dass das Konto im Datenblatt nicht existiert. Das ist jetzt aber nur der Fall, weil ich 200.000 Datensätze rausgelöscht habe. Auch wenn es vorhanden ist, entsteht der gleiche Fehler. Vielen Dank! Ob ich das mit dem File-Upload jetzt richtig gemacht habe weiß ich nicht....
https://www.herber.de/bbs/user/110494.xlsm
Dirk
Anzeige
AW: Private Sub Worksheet_Calculate ()
12.01.2017 14:24:11
Gunter
Hallo Dirk
versuch mal folgendes
Private Sub Worksheet_Calculate()
Dim pt As PivotTable
Dim Ergebniszeile As Range
Sheets("Bereiche").Select
Application.ScreenUpdating = False
Me.Cells.Interior.Color = RGB(211, 211, 211)

Denn das Calculate wird ausgeführt sobald du auf dem Sheet Umlagen eine Änderung vornimmst und dort gibt es die Tabelle nicht
Gruss
Gunter
AW: Private Sub Worksheet_Calculate ()
12.01.2017 15:54:11
Dirk
Hallo Gunter,
versuche ich. Komme ich aber erst morgen zu.
Aber warum wird das Ereignis ausgelöst? Das Makro ist doch am Blatt Bereiche angefügt und dazu auch noch als Private deklariert. Wieso wird dieses Ereignis auch ausgelöst, wenn ich in einer anderen Pivottabelle arbeite?
Aber vielen Dank!
Gruss Dirk
Anzeige
AW: Private Sub Worksheet_Calculate ()
12.01.2017 16:08:17
Gunter
Wenn du auf Umlagen Werte änderst, hat das ja direkten Einfluss auf Bereiche.
Das Worksheet_Calculate-Ereignis wird bei JEDER Berechnung im Tabellenblatt ausgeführt.
AW: Private Sub Worksheet_Calculate ()
13.01.2017 08:24:26
Dirk
Hallo Gunter,
wieso hat eine Änderung im Blatt Umlagen einen direkten Einfluss auf Bereiche? Die Tabellen basieren zwar auf einem gemeinsamen Datenblatt, haben doch aber sonst keine Verbindung. Und ändern tut sich in der Pivottabelle Bereiche doch auch nichts.... Verstehe ich nicht so ganz.
Gruß
Dirk
AW: Private Sub Worksheet_Calculate ()
13.01.2017 08:51:54
Gunter
Hallo Dirk
Also wenn ich in deiner Tabelle auf dem Blatt Umlagen statt "Alle" nur den ersten Punkt 40510 anhake, dann ändern sich auf dem Blatt Bereiche die Einträge!? Ist das bei dir nicht so? Hast du mal versucht mit Sheets("Bereiche").Select ob das Problem dann immer noch existiert?
Gruss
Gunter
Anzeige
AW: Private Sub Worksheet_Calculate ()
13.01.2017 10:04:13
Dirk
Hallo Gunter,
nein, ich bin noch nicht dazu gekommen. Ich merke aber, dass du dich ja anscheinend automatisch per Mail informieren lässt. Es könnte sein, dass ich erst in der nächsten Woche dazu komme das Thema weiter zu verfolgen. Darf ich dann über diesen Weg wieder Kontakt mit dir aufnehmen?
Ich wünsche ein schönes Wochenende!
Gruß
Dirk
AW: Private Sub Worksheet_Calculate ()
13.01.2017 11:47:22
Gunter
Hallo Dirk
Das kannst du gerne machen. Noch ein Hinweis vielleicht hilft es auch statt dem Calculate das Change Ereignis zu verwenden.
Dir auch ein schönes Wochenende.
Gruss
Gunter

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige