Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
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
Autofilter-Auswahlliste zurückgeben
03.06.2020 12:32:48
Zacharias
Hallo liebe ExcelProfis,
ich hätte eine Frage zu den Autofiltern.
Ich habe eine Userform in der ich 52 Listboxen für alle Autofilter eines Blattes, auf der Fläche verteilt habe. Die Listboxen fülle ich mit den duplikatfreien Werten der jeweiligen Spalte.
Im Ergebnis sieht der Nutzer also das gleiche, als würde er in einer gefilterten Tabelle die einzelnen Spalten-Autofilter anklicken, wobei man dort nur die noch verfügbaren Werte angezeigt bekommt. Das schöne an dieser Darstellung ist aber, daß man zweidimensional sämtliche noch verfügbaren Distinct-Werte sofort in den Listboxen sieht und das in einer einzigen Userform, was bei so vielen Attributen die Transparenz enorm erhöht und von den Benutzern begeistert aufgenommen wurde.
Ein Linksklick in eine Listbox filtert im Blatt auf den gewählten Wert in der entsprechenden Spalte, Ein Rechtsklick hebt den Filter in dieser Spalte wieder auf.
Nach jedem Filtern kopiere ich das Blatt in welchem gefiltert wird, in eine weiteres Blatt,
wobei ich die redundanten Zellwerte in jeder Spalte eliminiere, um anschließend mit diesen eindeutigen Werten wieder sämtliche Listboxen zu füllen.
Das Eliminieren der Doppelwerte erledige ich wie folgt:
lngLastRow = GET_LAST_ROW(wksTOOL_FILTERRESULT)
With wksTOOL_FILTERRESULT
For i = 1 To intLastCol
.Range(.Cells(1, i), .Cells(lngLastRow, i)).RemoveDuplicates Columns:=1, Header:=xlYes
Next i
End With

Im Filterblatt existieren aktuell über 17.000 Datensätze (die maximale Anzahl unterschiedlicher Werte liegt bei unter 3.000).
Das Klicken, Filtern, Distincten, Listboxen aktualisieren klappte wunderbar und auch recht zügig.
Nun wollte ich noch 3 weitere Attribute als Listboxen aufnehmen, die mit sehr langen Zeichenketten gefüllt sind. Es handelt sich um Bemerkungen in denen bis zu 510 Zeichen stehen.
Ich vermute, durch die Länge der Zeichenketten (?), dauert die RemoveDuplicates-Methode bei diesen Spalten wesentlich länger, als bei den anderen 49 Spalten.
Daher suche ich nach eine schnelleren Methode die Duplikate zu eliminieren.
(Collections oder Dictionarys zu füllen und dann in die Spalte zu schreiben, war übrigens langsamer, als die RemoveDuplicates-Methode.)
Ich frage mich nun Folgendes:
Wenn ich den Autofilter aktiviere, zeigt mir doch Excel ohne jeglichen Zeitverzug als Auswahl die
duplikatfreien Zellinhalte an (begrenzt auf 10.000 unterschiedliche Werte).
Ist es möglich an diese Liste des Autofilters heranzukommen?

Dann würde die RemoveDuplicates-Methode überflüssig und die duplikatfreie Tabelle wäre noch viel schneller erzeugt.
Ich bin Euch wie immer für jeden zielführenden Hinweis dankbar und wünsche allen einen schönen Tag.
Viele Grüße
Zacharias

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter-Auswahlliste zurückgeben
05.06.2020 21:19:50
onur
"Das schöne an dieser Darstellung " Was bitteschön ist schön an einer Userform mit ZWEIUNDFÜNFZIG Listboxen?
AW: Autofilter-Auswahlliste zurückgeben
06.06.2020 12:55:05
Zacharias
@onur
Was bitteschön ist schön an einer Userform mit ZWEIUNDFÜNFZIG Listboxen?
Genau wegen solcher Antworten wie von Dir, schrieb ich:
"Ich bin Euch wie immer für jeden zielführenden Hinweis dankbar ..."
Warum glaubst Du beurteilen zu können, bis zu welcher Listboxanzahl eine Userform für unsere Mitarbeiter eine Transparenz-Verbesserung schafft?
Ich arbeite als Elektroing. seit über 20 Jahren in der Automobilentwicklung und das Tool zu dem ich die Frage stellte, verwaltet Attribute aus vielen verschiedenen Firmensystemen.
Es ist tatsächlich so, daß es für unsere Arbeit sehr hilfreich ist, wenn man sich durch bestimmte Entwicklungsvorgänge scrollt oder klickt und sich alle relevanten ProjektdatenAttribute sofort zeitgleich ändern. Wenn man projektspezifische Daten, vorgangsspezifische Daten, finanzspezifische Daten und Stammdaten parallel darstellen WILL, dann kann es eben auch zu 52 Attributen kommen.
Für UNSERE Arbeit ist es viel besser, sich erst gar nicht aus der EINEN Userform herausbewegen zu müssen. Ich denke, daß 7 Mitarbeiter, die seit vielen Jahren diesen Job machen und dankbar für diese Darstellung sind, besser beurteilen können, was für sie hilfreich ist, als Du ... oder ?
Wie nutzerfeindlich es ist, sich permanent zwischen verschiedenen Reitern/Fenstern zum selben Datensatz bewegen zu müssen, durfte ich oft genug leidvoll in firmeneigenen Datenbanksystemen erfahren, die von Entwicklern geschaffen wurden, die mit ihren eigenen Produkten nie produktiv arbeiten müssen und die zudem die Variantenvielfalt der Produktdaten in der Automobilindustrie oft unterschätzten.
Anzeige
AW: Autofilter-Auswahlliste zurückgeben
06.06.2020 14:06:48
onur
"Ich denke, daß 7 Mitarbeiter, die seit vielen Jahren diesen Job machen und dankbar für diese Darstellung sind" - Klar, sie kennen es ja nicht anders und haben ja keine Alternative - oder? Und SIEBEN Leute können sich ja nicht irren. Was ICH beurteilen kann, kannst wiederum DU nicht beurteilen.
Im Ernst - Wenn du hier Hilfe willst, solltest du hier vieleicht etwas weniger arrogant auftreten.
Jetzt mal zu deinem Problem: "Collections oder Dictionarys zu füllen und dann in die Spalte zu schreiben, war übrigens langsamer, als die RemoveDuplicates-Methode." - DAS wage ich schwer zu bezweifeln - es dauert UNTER einer Sekunde, über 20.000 ellenlange Strings einzulesen, doppelte zu eliminieren UND sie in eine andere Spalte einzutragen.
Anzeige
AW: Autofilter-Auswahlliste zurückgeben
06.06.2020 14:55:41
Zacharias
Hallo onur,
tut mir leid, wenn Du ich arrogant rüberkam.
Ich bin hier eigentlich noch nicht arrogant aufgetreten glaube ich, sondern immer dankbar und höflich. Schließlich habe ich diesem Forum seit fast 20 Jahren immer wieder nette Hilfe bekommen und bin dafür sehr dankbar. Ich glaube auch nicht, daß ich auch nur einmal die höfliche Anrede oder eine Schlußformel vergessen hätte. Und bedankt habe ich mich für jeden Lösungsvorschlag.
Grund für meine Kritik war einfach, auf meine Frage fachlich überhaupt nicht einzugehen, sondern die Berechtigung der Frage selbst anzuzweifeln. Wenn man 20 Jahre in der Entwicklung arbeitet, kann man ganz gut beurteilen, welche Darstellung einem beim Tagesgeschäft hilft. Und wenn das ganze Team mit mehrjähriger Berufserfahrung das genauso sieht, dann könnte man das ja evtl. als gegeben hinnehmen.
Dank' Dir aber, daß Du am Ende nochmal auf die Elimination der Doubletten eingehst!
Um sämtliche Listboxen doublettenfrei, in Abhängigkeit von den aktuellen Autofiltern zu füllen,
muß diese Doubletteneliminition eben in besagten 52 Spalten stattfinden.
Und auch "unter 1s" läppert sich bei 52 Attributen x "unter 1s" eben zu einer erkleckerlichen Zeit - in Summe.
Bevor ich auf RemoveDuplicates umgestellt habe, hatte ich diese Methode
Function myList(sh As Worksheet, lngCol As Long)

genutzt, die ich auch aus Eurem Forum habe (ich meine von Daniel oder Rudi Maintaire).
Ich hatte die Arrays direkt an die Listboxen übergeben, es war trotzdem langsamer, als RemoveDuplicates (was ja eigentlich sehr schnell ist).
Wie gesagt wäre es halt einfach verlockend, wenn man die im Autofilter angezeigten Douplettenfreien Werte abgreifen könnte.
Ich gehe nach allem was ich nun auch hier noch gelesen habe und weil hier niemand von Euch eine passende Antwort gegeben hat, davon aus, daß dies schlichtweg nicht möglich ist.
Dieses Forum und all Ihr hilfreichen Leute seid viel zu wichtig, um es mir mit Euch zu verscherzen!
Das war auch nicht mein Ziel, daher - Pardon nochmal - wenn ich zu schroff war!
Viele Grüße
Zacharias
Anzeige
AW: Autofilter-Auswahlliste zurückgeben
06.06.2020 15:03:31
onur
Kein Problem, ich hätte ja auch weniger sarkastisch sein können. :)
Ich dachte, es ginge nur um die letzten 3 Listboxen, da du schriebst:
"Nun wollte ich noch 3 weitere Attribute als Listboxen aufnehmen .... Ich vermute, .... dauert die .... bei diesen Spalten wesentlich länger, als bei den anderen 49 Spalten.".
Aber jetzt erweckst du den Eindruck, als ob es um alle 52 Listboxen geht.
AW: Autofilter-Auswahlliste zurückgeben
06.06.2020 15:39:53
Zacharias
In vielen der anderen 49 Listboxen befinden sich normierte Attribute wie Namen von Zuständigen,
Fachgruppen, Teilebenennungen etc. wo dann die Anzahl der Doubletten (bei 100PZ z.T. redundanter Füllung) deutlich geringer ist.
Es gibt zwar auch da z.B. Kosten, die fast ebensoviele verschiedene Werte haben, aber da sind die strings sehr kurz.
Die 3 zusätzlichen Spalten mit bis zu 510 Zeichen (die ich in der Validatiuonlist bei Eingabe zulasse), haben tatsächlich die beschriebene große Verzögerung gebracht.
Sobald ich die 3 Spalten leerte, ging es wieder scheller.
Ich habe Deine erst Antwort aber nochmal zum Anlaß genommen, etwas rumzuprobieren und habe gerade Deine 'kleiner 1s' nochmal nachvollzogen.
Du hast Recht, sogar bei meinen 27.000 Zeilen Bemerkungen mit langen strings dauert's wirklich weniger als 1s.
Ich hatte Deine Aussage ja leicht angezweifelt, weil die Routine in Summe mit den neuen Spalten eben deutlich länger braucht ;-)
Ich werde nochmal auf Suche gehen, wo genau ich mir die Zusatzzeit einfange.
Bevor ich die Listboxen fülle, führe ich noch Quicksort durch, vielleicht dabei.
Ich suche mal weiter!
Bis dann
Zacharias
Anzeige
AW: Office 365 würde deine Probleme lösen...
08.06.2020 12:38:21
EtoPHG
Hallo Zacharias,
Ich möchte keine Werbung für MS machen.
XL verfügt schon lange über interne und superschnelle Mechanismen für die 'Unique'-Filterung, die z.B. in der Autofilter-Auswahl eingesetzt werden. Bis anhin war der Zugriff auf solche nicht gegeben aber mit immer mehr kommenden Array-Funktionalitäten, sind im neueste Office 365 solche als Formeln (wie FILTER, EINDEUTIG, SORTIEREN etc.) verfügbar. Ich würde mal einen Upgrade ins Auge fassen.
Gruess Hansueli
P.S. Ich lass deinen Tread offen, da er ja kein unmittelbarer Lösungsvorschlag für dein Problem ist.
Anzeige
AW: Office 365 würde deine Probleme lösen...
08.06.2020 21:39:47
Zacharias
Hallo Hansueli,
Tut mir leid, daß ich mich erst so spät melde, aber ich habe die privaten Mails arbeitsbedingt erst jetzt wieder gelesen.
Vielen Dank für den Tipp, denn wie es der Zufall so will, bekomme ich morgen mein neues Firmen-Notebook und im Unternehmen wurde vor kurzem auf Office 365 umgestellt, so daß ich zum Testen gar nicht upgraden muß (zumindest am Firmenrechner nicht)!
Da paßt Dein Hinweis natürlich wie die Faust auf's Auge.
Ich habe auch nichts gegen Werbung für MS, ich finde Excel und all die Möglichkeiten einfach Super
und nutze es seit 20 Jahren ausgiebig beruflich.
Vielen Dank nochmals! Ich wünsche Dir noch eine schöne Woche!
Zacharias
Anzeige
AW: Office 365 würde deine Probleme lösen...
08.06.2020 21:48:31
Zacharias
Ich lasse den Haken mal raus zum Abschluß des Threads,
denn Hansueli hat mit seinem Hinweis auf Office365 vermutlich
den entscheidenen Tipp gegeben.
AW: Office 365 würde deine Probleme lösen...
08.06.2020 21:55:43
Zacharias
Ich lasse den Haken mal raus zum Abschluß des Threads,
denn Hansueli hat mit seinem Hinweis auf Office365 vermutlich
den entscheidenen Tipp gegeben.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige