Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
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

VBA Fehler - Daten abrufen dauert extrem lange

VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 09:37:51
Katrin
Guten Morgen,
wenn ich meine Excel öffne (Auch wenn ich es nur wieder maximiere), dauert es extrem lange (mindestens 10 Min., dann habe ich über ESC abgebrochen), bis alle Daten abgerufen sind. In meiner Tabelle sind drei Pivots die auf einer externen Datenquelle basieren. Es muss aber an meinem VBA Code liegen, da ich es schon probiert habe die externe Datenquelle auf ein Tabellenblatt in meiner Datei zu verschieben.
Lasse ich den Code Worksheet_SelectionChange ablaufen, funktioniert alles gut. Nur der Worksheet_Change scheint Probleme zu bereiten.
Muss ich in meinem Code noch was einbauen? Eigentlich sollte sich ja nur was ändern wenn bestimmte Zellen verändert werden. Und die werden beim aktualisieren der Pivot eigentlich nicht verändert...
Da ich jedes Mal, wenn ich etwas probiere wieder so lange warten muss,
wäre ich sehr dankbar wenn mir jemand helfen könnte.
Gruß
Mein Code sieht etwa so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1")) Is Nothing Then GoTo Zeile2
Application.ScreenUpdating = False
If Sheets("Tabelle1").Range("B1").Value = "(Alle)" Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("Projekt"). _
ClearAllFilters
End If
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
Set pt = Worksheets("Tabelle1").PivotTables("PivotTable1")
Set Field = pt.PivotFields("Projekt")
NewCat = Worksheets("Tabelle1").Range("B1").Value
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
...
und so weiter...

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 09:48:45
Rudi
Hallo,
schalte die Ereignisverarbeitung aus.
Gruß
Rudi
Diese Zeile wird nie erreicht:
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub

AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 10:01:16
Katrin
Hallo Rudi,
In diesem Fall möchte ich ja aber, dass meine Anweisung ausgeführt wird,
wenn ich B1 verändere. Macht es trotzdem wenn ich "IF Intersect" entferne?
Sorry, bin VBA Anfänger und verstehe das noch nicht, würde es aber gerne!
AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 10:56:14
Katrin
Mittlerweile habe ich gemerkt, dass es nicht nur an Worksheet_Change liegt,
sondern bei Worksheet_SelectionChange auch auftritt. Allerdings in ca. 2 Minuten ist
hier der Vorgang beendet.
Anzeige
AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 11:44:13
Katrin
Hallo,
Habe mal meinen Code komplett entfernt bis auf den unten stehenden
und das Problem ist immernoch da.
Rudi meinte bereits, dass
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
gar nicht eintreffen kann. Kann mir das aber nicht erklären, wie ich es sonst
lösen sollte, dass der Code beim ändern von B1 ausgeführt wird.
Danke schonmal !
Gruß
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
ActiveSheet.ChartObjects("Diagramm 6").Activate
ActiveChart.ChartArea.Select
ActiveSheet.PivotTables("PivotTable4").PivotFields("KW").ClearAllFilters
ActiveSheet.PivotTables("PivotTable4").PivotFields("KW").PivotFilters.Add Type _
:=xlCaptionIsGreaterThan, Value1:=Worksheets("Tabelle1").Range("B1")
End Sub

Anzeige
AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 12:18:53
Rudi
Hallo,
wie ich es sonst
lösen sollte, dass der Code beim ändern von B1 ausgeführt wird.

Ganz einfach:
If Target.Address = "$B$1" Then
'mach was
End If
Gruß
Rudi
AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 12:31:49
Rudi
Hallo,
mal als Grobschema:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ERREXIT
Application.EnableEvents = False
Select Case Target.Address
Case "$B$1"
'mach dies
Case "$C$1"
'mach jenes
Case "$D$1"
'mach das
End Select
ERREXIT:
Application.EnableEvents = True
End Sub

Gruß
Rudi
AW: VBA Fehler - Daten abrufen dauert extrem lange
26.02.2018 16:26:18
Katrin
Super, hat geklappt Danke!
"Ganz einfach" ist das für mich aber nicht :)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige