Hallo liebe Experten,
ich suche eine effektive Methode um bestimmte Zeilen aus einem Worksheet zu löschen. Das Worksheet "Analyse" hat ca 70.000 Zeilen. In der Spalte C steht ein Werkscode (Alphanumerisch). Auf einem anderen Worksheet ("Scope") steht in Spalte A eine Liste von Werkscodes.
Ich möchte jetzt alle Zeilen aus der Analyse Tabelle löschen, bei der das Werk NICHT im Scope genannt ist. Momentan löse ich das, indem ich erst die Werke aus Scope in ein Dictionary lade. Anschliessend gehe ich mit einem Loop durch die Analyse tabelle, verwende Clear contents für alle Zeilen bei denen das Werk nicht im Dictionary vorkommt. Anschliessend sortiere ich die Analyse tabelle. Erfahrungsgemäß ist das deutlich schneller, als wenn ich Zeile für Zeile lösche. Trotzdem bin ich mit der Performance nicht wirklich glücklich.
Vermutlich ist der beste Wege einen Autofilter auf alle Werke zu setzen, die nicht in der Liste vorkommen, und dann mittels UsedRange alles auf einen Schlag zu löschen. Ich habe aber noch keinen guten Weg gefunden, die Autofilterkriterien zu setzen.
Hat jemand eine Idee (oder code :-) )?
Die anghängte Datei zeigt nur die Struktur der Datei. Den Code habe ich Euch erspart :-)
https://www.herber.de/bbs/user/158458.xlsx
Danke schon mal
Theo