12.11.2020, 18:20
Hallo,
seit einiger Zeit habe ich ein störendes Problem mit einigen Excel-Tabellen. Leider weiß ich nicht, seit wann das auftritt und ob es mit einem Update in Verbindung gebracht werden kann.
Zu meiner Verwendung von Excel: ich habe permanent ca. 13 Tabellen geöffnet, die ich immer wieder benötige und nicht jedes mal starten will. Für alle diese Tabellen wird jeweils eine eigene Instanz von Excel gestartet.
Ich beschreibe das Problem jetzt anhand einer Tabelle, die aus 6 Blättern besteht und das Blatt, in dem das Problem auftritt, besteht aus 14 Spalten und z.Zt. 23.800 Zeilen. Für alle Spalten ist ein Autofilter eingerichtet.
Jetzt wird gefiltert: Spalte N: Filter wenn 1, Spalte M: Filter wenn nicht 1 (sowohl M als auch N, werden mit einfacher Formel aus zwei anderen Spalten der selben Zeile berechnet, die jeweils Konstanten enthalten, oder sind beide leer)
Wenn ich jetzt entweder im Menue "Sortieren und Filtern - Löschen" anklicke oder den Filter in beiden Spalten wieder auf "Alles auswählen" setze dann wird sofort wieder die gesamte Tabelle angezeigt.
So weit, so gut!
Nach einiger Zeit verändert sich das Verhalten aber :22:
Wenn ich dann den Filter in beiden Spalten wieder auf "Alles auswählen" setze, dann klappt das immer noch sofort. Wenn ich allerdings im Menue "Sortieren und Filtern - Löschen" anklicke, dann dauert das. 10 Sekunden, 30 Sekunden, ich habe auch schon mal 10 Minuten gewartet ... dabei ist die CPU bzw. einer der logischen Prozessoren zu 100% ausgelastet und der Prozess steht im Task-Manager mit "Keine Rückmeldung".
Um den Test zu vereinfachen habe ich die beiden Varianten in zwei Makros gepackt, die zusätzlich die Uhrzeit vor und nach der "Abschaltung" des Filters in ein anderes Blatt schreiben
----- MAKRO 6
Sheets("Log").Cells(x, 6) = Now()
ActiveSheet.ShowAllData
x = x + 1
Sheets("Log").Cells(x, 6) = Now()
-----
----- MAKRO 7
Sheets("Log").Cells(x, 6) = Now()
ActiveSheet.Range("$A$1:$U$23822").AutoFilter Field:=13
ActiveSheet.Range("$A$1:$U$23822").AutoFilter Field:=14
x = x + 1
Sheets("Log").Cells(x, 6) = Now()
-----
So sieht es kurz nach dem Öffnen der Tabelle aus:
08.11.20 07.58.00
08.11.20 07.58.00 6 (0 Sekunden)
08.11.20 08.00.41
08.11.20 08.00.41 7 (0 Sekunden)
und so einen Tag später:
09.11.20 09.59.16
09.11.20 09.59.22 6 (6 Sekunden)
09.11.20 09.59.36
09.11.20 09.59.36 7 (0 Sekunden)
Ich habe jetzt schon etliche Artikel zu "ShowAllData" gelesen, aber keinen Hinweise wodurch dieses Problem entsteht gefunden :20:
Grüße von Nobby1805
seit einiger Zeit habe ich ein störendes Problem mit einigen Excel-Tabellen. Leider weiß ich nicht, seit wann das auftritt und ob es mit einem Update in Verbindung gebracht werden kann.
Zu meiner Verwendung von Excel: ich habe permanent ca. 13 Tabellen geöffnet, die ich immer wieder benötige und nicht jedes mal starten will. Für alle diese Tabellen wird jeweils eine eigene Instanz von Excel gestartet.
Ich beschreibe das Problem jetzt anhand einer Tabelle, die aus 6 Blättern besteht und das Blatt, in dem das Problem auftritt, besteht aus 14 Spalten und z.Zt. 23.800 Zeilen. Für alle Spalten ist ein Autofilter eingerichtet.
Jetzt wird gefiltert: Spalte N: Filter wenn 1, Spalte M: Filter wenn nicht 1 (sowohl M als auch N, werden mit einfacher Formel aus zwei anderen Spalten der selben Zeile berechnet, die jeweils Konstanten enthalten, oder sind beide leer)
Wenn ich jetzt entweder im Menue "Sortieren und Filtern - Löschen" anklicke oder den Filter in beiden Spalten wieder auf "Alles auswählen" setze dann wird sofort wieder die gesamte Tabelle angezeigt.
So weit, so gut!
Nach einiger Zeit verändert sich das Verhalten aber :22:
Wenn ich dann den Filter in beiden Spalten wieder auf "Alles auswählen" setze, dann klappt das immer noch sofort. Wenn ich allerdings im Menue "Sortieren und Filtern - Löschen" anklicke, dann dauert das. 10 Sekunden, 30 Sekunden, ich habe auch schon mal 10 Minuten gewartet ... dabei ist die CPU bzw. einer der logischen Prozessoren zu 100% ausgelastet und der Prozess steht im Task-Manager mit "Keine Rückmeldung".
Um den Test zu vereinfachen habe ich die beiden Varianten in zwei Makros gepackt, die zusätzlich die Uhrzeit vor und nach der "Abschaltung" des Filters in ein anderes Blatt schreiben
----- MAKRO 6
Sheets("Log").Cells(x, 6) = Now()
ActiveSheet.ShowAllData
x = x + 1
Sheets("Log").Cells(x, 6) = Now()
-----
----- MAKRO 7
Sheets("Log").Cells(x, 6) = Now()
ActiveSheet.Range("$A$1:$U$23822").AutoFilter Field:=13
ActiveSheet.Range("$A$1:$U$23822").AutoFilter Field:=14
x = x + 1
Sheets("Log").Cells(x, 6) = Now()
-----
So sieht es kurz nach dem Öffnen der Tabelle aus:
08.11.20 07.58.00
08.11.20 07.58.00 6 (0 Sekunden)
08.11.20 08.00.41
08.11.20 08.00.41 7 (0 Sekunden)
und so einen Tag später:
09.11.20 09.59.16
09.11.20 09.59.22 6 (6 Sekunden)
09.11.20 09.59.36
09.11.20 09.59.36 7 (0 Sekunden)
Ich habe jetzt schon etliche Artikel zu "ShowAllData" gelesen, aber keinen Hinweise wodurch dieses Problem entsteht gefunden :20:
Grüße von Nobby1805