Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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
VBA Hitliste für Autofilter
17.12.2021 22:20:22
Joschi
Hallo Excel-Fachleute,
zuerst eine Richtigstellung: mein Wissensstand geht über den Macrorecorder hinaus, aber die nächste Stufe dürfte ich noch nicht erreicht haben. Ich kämpfe mich durch und hole mir viele Lösungen aus dem Internet.
Nun brauche ich eine (für mich lösbare) Anregung:
Basis ist eine Excel-Tabelle mit technischen Daten. Jetzt suche ich nach einer Lösung zu folgendem Problem:
Ich möchte eine dynamische Filterliste auf verschiedene Spalten einsetzten. Dazu wird für die möglichen Spalten ermittelt, welche Einträge in dieser Spalte wie oft vorkommen; es entsteht also eine Hitliste. Soweit ist alles realisiert.
Über einen Doppelklick auf die Titelzeile einer Spalte soll nun die Hit-Liste für diese Spalte angezeigt werden. Der Anwender soll dann einen der angezeigten Einträge auswählen, was dann dazu führt, dass der ausgewählte Begriff als Autofilter für diese Spalte eingesetzt wird. Soweit die Vorstellung.
Wie könnte ich das "anzeigen und auswählen" lösen?.
Joschi

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Hitliste für Autofilter
17.12.2021 22:57:20
Oberschlumpf
Moin Joschi,
ich würd es so versuchen:
1. 1x Klick (nich Doppelklick), also einfache Auswahl einer Überschrift der einzelnen Spalten fügt der Überschriftenzelle (nich Zeile!) eine Datengültigkeitsliste hinzu, die aus der dir bekannten Hitliste gebildet wird (jeder Eintrag nur 1x)
2. Jetzt musst du aus der Datengültigkeitsliste nur noch den gewünschten Eintrag auswählen, und im nächsten Schritt wird die ganze Tabelle genau nach dem zuvor ausgewählten Eintrag gefiltert
3. Bei Auswahl einer anderen Spaltenüberschrift (oder auch gern bei Auswahl einer beliebigen anderen Zelle) wird der noch aktive Filter wieder deaktiviert und alles beginnt mit 1. + 2. von vorn mit der neu ausgewählten Spaltenüberschrift
Hilfts?
Ciao
Thorsten
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 07:26:05
Joschi
Guten Morgen, Thorsten.
Ich bedanke mich für Deine Antwort. Leider habe ich davon nichts verstanden..

Überschriftenzelle (nich Zeile!)
Mit "1 x Klick" meinst Du bestimmt rechte Maustaste auf den Text einer Spalte in Zeile 1, oder? Wenn ich das mache, wird mir folgendes Menu angeboten:
Userbild
Du meinst mit Deinem Vorschlag aber nicht die Filter-Liste?
Wo ist (möglicherweise) mein Denkfehler?
Gruß von Joschi
AW: VBA Hitliste für Autofilter
18.12.2021 08:00:30
Oberschlumpf
Hi Joschi,
nee, ich meinte nich die rechte Maustaste mit Anzeige des Kontextmenüs - ich meinte schon Klick mit linker Maustaste.
Und all das, was ich dir sonst beschrieben hatte, soll nur erst mal ein Konzept darstellen, wie ich versuchen würde, deine Frage zu beantworten.
Aber das Konzept müsste in VBA programmiert werden.
DAS kann ich aber nicht für dich programmieren, da ich ja deine "Hitlist" nicht kenne.
Zeig bitte mal per Upload eine Bsp-Datei, so, wie es auch in deinem Original aussieht - Originaldaten solltest du natürlich gegen Bsp-Daten tauschen.
Ciao
Thorsten
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 10:16:38
Joschi
Hallo Thorsten,
bei einem Klick mit der linken Maustaste passiert bei mir nichts, es sei den, ich klicke auf den Spalten-Namen (z. B. "D"); dann wird die Spalte ausgewählt.
Meine Mappe derart umzubauen, damit ich sie öffentlich zur Verfügung stellen kann, ist mit hohem Aufwand verbunden. Außerdem sind Programmteile eingebaut, die ich nicht weitergeben darf.
Die Hitliste, von der ich gesprochen habe, und die sich immer an der aktuell ausgewählten Spalte orientiert, wird aus Daten der Spalte erstellt, indem nach bestimmten Kennzeichen innerhalb des Textes gesucht wird. Wird ein solcher Text erkannt, so wird der für die Hitliste bereitgestellt. Ist die Spalte komplett abgearbeitet, werden diese Daten nach den gefundenen Namen sortiert. Danach wird die Hitliste erstellt, die jeweils mit einer Zahl und dem gefundenen Begriff aufgebaut ist. Die Zahl ist die Anzahl der Zeilen, in welchen der jeweilige Begriff erkannt wurde. Möglich sind auch mehrere Begriffe in einer Zelle. Nach dem Sortieren dieser Liste steht der Begriff, welcher am häufigsten gefunden wurde, am Beginn der Hitliste - zusammen mit der Trefferzahl, danach der mit Platz 2 usw.
Die Hitliste sieht dann z. B. so aus:
11 Schutzmasken
7 Pistolen
6 Munition
2 Kanonen
Nun soll der Anwender entscheiden, welcher der angebotenen Begriffe als Autofilter für die zuvor ausgewählte Spalte eingesetzt werden soll.
Mit geht es also nur darum, eine zusätzliche Entscheidung zwischen der Auswahl der Spalte (Doppelklick?) und der Filterung zu ermöglichen. Dabei soll der Anwender aber nicht den Begriff eintippen, sondern "irgendwie" kennzeichnen können. Das soll mit Hilfe der Hitliste und deren Reihenfolge (mit Anzahl der Treffer) erfolgen. Ich möchte auch ungern eine zusätzliche Spalte mit den Daten der Hitliste erstellen, auf welche dann der Filter angewendet werden kann (der Anwender muss ja noch entscheiden, was er sehen will).´Allen dürfte dochbekannt sein, dass durch einen Filter für eine Spalte die anderen Spalten der gefilterten Zeilen sichtbar sind, und nicht nur die Daten aus der gefilterten Spalte.
Ich hoffe, Du (und natürlich auch andere Leser dieses Threads) haben meinen Plan verstanden.
Schönes Wochenende. Joschi.
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 11:34:28
Oberschlumpf
Hi,
bei einem Klick mit der linken Maustaste passiert bei mir nichts...
Immer noch: DAS, was bei Klick mit linker Maustaste nach meiner Idee passieren soll, muss erst noch programmiert werden!
Und du schaffst es nicht, eine Bsp-Datei zu erstellen (du sollst ja keine Kopie vom Original zeigen!)?
Die Bsp-Datei muss ja auch nur einige Bsp-Datenzeilen enthalten, ca 20 bis 30 Zeilen würden ja schon reichen.
Na gut, wenn das nicht geht, kann ich leider nicht helfen, da ich ja gar nicht weiß, welche Zeilen/Spalten du benutzt.
Weiter viel Erfolg!
Ciao
Thorsten
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 12:33:00
Joschi
Hallo Thorsten,
ich hoffe, dass Du meine Antwort auf Deine letzte Nachricht auch siehst.
Meine Meinung ist, dass ich in meinem letzten Beitrag genau beschrieben habe, was passieren soll. Was das mit einer bestehenden Muster-Tabelle zu tun hat, kann ich nicht nachvollziehen.
Durch einen (bisher manuell ausgeführten) Auswertungslauf stehen mir 4 Begriffe zu Verfügung, wobei zu jedem Begriff angegeben ist, wie oft er in der ausgewählten Spalte gefunden wurde. Diese Zahlen signalisieren dem Anwender, welche Begriffe besonders häufig vorkommen. Statt der von mir ermittelten Begriffe kannst Du auch "Äpfel", "Birnen", Trauben" und "Tomaten" nehmen. Aus diesen 4 Begriffen soll der Anwender einen Begriff auswählen, und dieser Begriff wird dann per Makro als Filter-Eintrag für die ausgewählte Spalte eingesetzt. Somit sind nur solche Zeilen sichtbar, bei denen in der fraglichen Spalte der aus den 4 Begriffen ausgewählte Begriff auftaucht.
Ich erwarte nicht, dass mir jemand die Arbeit abnimmt. Mir geht es lediglich darum, zwischen dem (Doppel)Klick auf die Spalte und dem Setzen eines Filters noch einen zusätzlichen Auswahl-Dialog zu realisieren, in dem einer der genannten Begriffe ausgewählt wird. Die Informatkion über die Häufigkeit ist lediglich eine Entscheidungshilfe und muss natürlich bei der Übernahme in die Filterliste entfernt werden.
Mit meinem Wissenstand ist die Realisierung einer Doppelklick-Routine kein Problem. Mein Problem ist, dass während der Ausführung des Doppelclick-Codes und vom dem Setzen des Autofilters noch eine Entscheidung getroffen werden muss. Und genau dazu fehlt mir das Wissen.
Ich würde mich freuen, wenn Du Dich weiterhin bei der Lösung meiner Idee beteiligen würdest.
Gruß Joschi.
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 12:45:49
Oberschlumpf
Hi Joschi,
Ich würde mich freuen, wenn Du Dich weiterhin bei der Lösung meiner Idee beteiligen würdest.
Das kann ich nur, wenn ich eine Bsp-Datei mit Bsp-Daten zur Verfügung gestellt bekomme.
Ich mag nicht selbst für andere Bsp-Dateien erstellen, weil ich schon zu oft die Erfahrungen machte, dass dann von dem, dem ich helfen wollte, Fragen/Hinweise kamen, wie z Bsp "Ja, aber in meiner Datei werden andere Spalten benutzt. Kannst du das anpassen?", oder "Deine Bsp-Datei kann ich nicht anwenden, da in meiner Datei verbundene Zellen vorhanden sind.", oder oder oder...
Aber Yal versucht ja auch schon, dir zu helfen...vielleicht ja mit mehr Erfolg.
Ciao
Thorsten
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 13:02:59
Yal
Ich habe lediglich auf die Sinnigkeit hingewiesen, Pivot-Tabelle anzuschauen.
Ich notiere auch, dass Joschi gern viel selber machen möchte (löblich), aber hier und da ein "Tipp" braucht.
Im VB-Editor, im Codepane vom Blatt, wo die Daten liegen, oben im Dropdown "Allgemein" in "Worksheet" ändern.
Es fügt sich einen "Private Sub Worksheet_SelectionChange", diese SelectionChange siehst Du auch im Dropdown oben rechts. Dort gehst Du auf "MouseDown".
Es fügt sich den passenden Sub. Darin legst Du einen Dummy Code
MsgBox "Klick"
Jetzt gehst Du auf das Blatt und klickst irgendwo.
So hast Du dein Einstiegspunkt.
VG
Yal
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 13:46:08
Joschi
Hallo Yal,
Ich habe entsprechend Deiner Beschreibung die passende Routine erstellt, und es ist tatsächlich so, dass die (neue) Routine aufgerufen wird, wenn ich auf irgend einen Spalten-Namen oder eine beliebige Zelle klicke. Das ist natürlich eine erhebliche Belastung, wenn nun bei jedem Klick die Routine durchlaufen wird. Dann weiß ich aber noch immer nicht, was der Anwender vorhat. Außerdem muss die Routine im Code des Blattes bereitgestellt sein. Dann bleibe ich doch lieber bei meiner ursprünglichen Idee, den Einstieg über den Doppel-Klick zu machen; das ist eine "bewußte" Aktion.
Der Einstieg und das Finale (Autofilter setzen) waren nie mein Problem. Doch dazwischen fehlt mit der passende Code, der mir einen vom Anwender ausgewählten Begriff so zur Verfügung stellt, dass ich in der Doppel-Klick-Routine darauf zugreifen kann.
Gruß Joschi
Anzeige
AW: VBA Hitliste für Autofilter
18.12.2021 14:43:24
Yal
So, so. Ein Doppelklick anstatt Klick. Das ist natürlich eine wesentliche Unterschied.
Und wie weisst Excel, was er zu tun hat, wenn auf eine Zelle doppelgeklickt wird? Durch eine mega geile Lösung, die irgendwo bei Google steht und die "Gedankenlesen" heißt?
Nein, im ernst: wenn das Licht angeht, wenn Du dieses Ding an die Wand betätigt, dann hat jemand die Kabel dafür verlegt. Die Kabel sind hässlich und werden versteckt, aber sie sind da. Sie haben eine nur eine einzige Funktion, und schlimmer noch: jemand hat diesen Kabel verlegt.
Und genau da stehst Du: Du musst jetzt Kabel verlegen.
Du weißt nicht welche Ampel, dein Anwender zum Leuchten bringen will? Dann wird es schwierig. Kabel "für alles" zu verlegen, ist natürlich nicht möglich. Also mach dir zuerst klar, was dein User haben möchten.
Du kannst, nach dem Du das Ereignis "Mausklick" abgefangen hast (Doppelklick geht übrigens genauso), prüfen, welche Zelle geklickt wurde, und dementsprechend agieren. Und ja, dieses Code muss in jede Datei rein. Denn die Kabel im Wohnzimmer haben keine Wirkung im Bad.
Deine Top-Treffer-Liste ist übrigens mit VBA nicht ganz ohne. Aber mit ein paar Excel-Formeln im VBA Code sollte es machbar sein. Vielleicht solltest Du hier mehr Details liefern.
VG
Yal
Anzeige
AW: VBA Hitliste für Autofilter
19.12.2021 09:11:35
Joschi
Hallo Thorsten, hallo Yal.
Wie Ihr am Status meines Threads feststellen könnt, gibt es mein Problem nicht mehr. Der Grund: mein Problem ist gelöst.
Userbild
Aus verschiedenen Foren war mir bekannt, dass man viel über eine Userform lösen kann. Jetzt habe ich mich erstmals damit beschäftigt. Noch ist es mir nicht gelungen, eine Userform selbst aufzubauen. Deshalb habe ich eine als Muster im Internet bereitgestellte Userform genommen, einiges gelöscht, und den Rest auf meine Bedürfnisse angepasst. Wie ich schon ursprünglich angedacht hatte, geschieht der Einstieg über einen Doppelklick in Zeile 1 einer möglichen Spalte. Ob die Spalte sich für mein Vorhaben eignet, erkenne ich am Inhalt der Titelzeile der ausgewählten Spalte. Dann wird mit dem bereits schon länger fertiggestellten Code die Hitliste erzeugt, und anschließend die Userform gestartet. Dort kann der Anwender nun einen der 3 Begriffe anklicken; das Ergebnis wird dann bereitgestellt und innerhalb der Doppelklick-Routine ausgewertet und in einen Autofilter eingebaut.
@Thorsten; Warum hast Du mich nicht gleich am Anfang darauf hingewiesen, dass für den Klick auf eine Spalte ein bestimmter Exit ("Worksheet_SelectionChange") vorhanden sein muss. Selbst als ich Dir ein Bild von dem geschickt habe, was bei mir sichtbar ist, hast Du darauf nicht reagiert. Natürlich wäre auch über den Worksheet_SelectionChange-Event mein Problem lösbar gewesen. Doch ein Doppelklick ist eine klare "Aussage", dass etwas getan werden soll. Ich nutze die entsprechende Routine häufig dafür, den Inhalb der angeklckten Zelle in den Zwischenspeicher zu stellen, um dann die kopierten Daten an andere Stelle - auch außerhalb von Excel - eingefügten zu können..
@Yal: Das, was ich wenige Zeilen zuvor über die Doppelklck-Technik gesagt hatt, bezieht sich auch auf Dich. "So, so. Ein Doppelklick anstatt Klick." Und dann der Vorschlag "Umgestaltung der Daten Mithilfe von Power Query", nur um dem Anwender die am häufigsten vorkommenen erkannten Begriffe anzuzeigen? Welcher Aufwand! Deine Story mit den Kabeln in der Wand habe ich gelesen; den Aufwand hättest Du Dir sparen können.
Wie ich schon ganz am Anfang geschrieben hatte, fehlte mir nur ein Teil vom Code für "analysieren", "auswählen" und "als Filter anwenden".
Getestet habe ich mir einer vollkommen leeren Tabelle; ich wollte ja nicht den Autofilter testen. Und meine Hitliste habe ich fest vorgeben. Wenn ich jetzt in der Doppelklick-Routine das Ergebnis aus der Userform zurückbekomme, speichere ich das an einer fest vorgegeben Stelle meiner Testmappe, um zu sehen, was als Ergebnis "geliefert" wurde.
Jetzt muss ich in meine Doppelkllck-Routine nur noch den Aufruf der Funktion, welche die Hitliste erstellt, einbauen, sowie das zurückgelieferte Ergebnis in eine Filterliste für die angeklickte Spalte übernehmen.
Ich hoffe nicht, dass ich durch diese Antwort bei Euch auf die "schwarze Liste" komme, und würde mich freuen, wenn Ihr mich auch bei weiteren Problemen unterstützen würdet.
Ich wünsche Euch besinnliche und frohe Weihnachten, sowie einen "guten Rutsch" in das Jahr 2022, das hoffentlich nicht mehr 12 Monate unter Corona leidet.
Gruß Joschi.
AW: VBA Hitliste für Autofilter
19.12.2021 09:32:37
Oberschlumpf
Hi
@Thorsten; Warum hast Du mich nicht gleich am Anfang darauf hingewiesen....
Sag mal, gehts noch?
DAS, was ich dir von Beginn an erzählt hatte, war - noch mal! - nur ein Konzept, wie ich vorgehen würde (hast du das jetzt kapiert?)
Es war gar kein Ansatz einer Lösung/Beantwortung deines Problems/Frage!
Und ich kann Yals Aussage nur wiederholen:
Ich hatte dich Anfangs auf gar nix hingewiesen, weil auch ich....nicht Gedanken lesen kann!!!!
Und schick bitte nich wieder Bilder einer Excel-Tabelle - Excel ist - nicht!!!! - ein Bildbearbeitungsprogramm!!!!
Schick einfach nur EXCEL-Bsp-Dateien mit Bsp-Daten per Upload.
Aber musste für mich nich mehr tun - ich habe fertig...mit dir
Ciao
Thorsten
Vielen Dank für die Rückmeldung
19.12.2021 10:23:05
Yal
Hallo Joschi,
Da Thorsten bereits den deftigen Part übernommen hat, muss ich mich eher auf den besinnlichen fokussieren ;-)
Nein, Du kommst nicht auf eine schwarzen Liste. Es braucht mehr um die Geduldgrenze so erreichen.
Es bleibt aber bei der Aussage, dass bei aller Mühe, die wir uns geben, um sich in den Fragenden hinein zu versetzen (sowohl in was er will als auch in was er kann), wir davon abhängig sind, wie er sein Anliegen darstellt. Eine Excel-Datei hilft dabei sehr viel und lenkt von der Ungenauigkeit der Beschreibung ab.
Es ist ein Kunst die richtige Frage oder gar die Frage richtig zu stellen. Es reicht manchmal ein Wort prominenter an Anfang zu stellen und schon ist bei dem Lesenden eine Weiche gestellt, die die nachfolgenden Gedanken auf den falschen Gleis bringt. Und, ja, sorry, wir sehen diese Bring-Schuld bei der Fragenden.
Insbesondere um zu merken, dass wir auf dem falschen Gleis stehen, und den Blickwinkel auf dem Sachverhalt zu wechseln. Solches könnte ich in deinen Nachtrag nicht entdecken, daher sehe ich die von Dir vorgeworfene Mängel an Mühe, den anderen zu verstehen, mindestens gleich verteilt.
Du darfst selbstverständlich darüber deine Meinung haben. Wir haben unsere eigene. Und auch unsere eigene Erfahrung (Oberschlumpf 7500 Beiträge, ich bescheidene 2500).
Ich wünsche dir ebenfalls Fröhliches und Besinnliches, und nicht nur fürs Weihnachten.
VG
Yal
Pivot-Tabelle?
18.12.2021 11:52:09
Yal
Hallo Joschi,
Was Du vorhast, hört sich verdächtigt nach Pivot-Tabelle.
Hast Du es probiert?
Datenbereich auswählen, "Einfügen", "Pivot-Tabelle"
VG
Yal
AW: Pivot-Tabelle?
18.12.2021 12:47:14
Joschi
Hallo Yal,
Danke für Deinen Hinweis auf eine Pivot-Tabelle. Damit habe ich noch nie gearbeitet und auch noch nie bewusst eine gesehen.
Mit Deiner "Kurzanleitung" "Datenbereich auswählen, "Einfügen", "Pivot-Tabelle"" bin ich auch nicht weitergekommen.
Ich muss mich erst einmal im Internet mit dem Thema "Pivot-Tabelle" beschäftigen.
Gruß Joschi
AW: Pivot-Tabelle?
18.12.2021 13:02:37
Joschi
Hallo Yal,
inzwischen habe ich mich im Internet über Pivot schlau gemacht. Doch meine Daten sind dazu nicht geeignet. Der Grund liegt in der Tatsache, dass in Zeile 1 Begriffe mehrfach vorkommen. Eine weitere Unterscheidung geschieht dann durch die Informationen in Zeile 2.
Der Aufbau der Tabelle stammt nicht von mir, und muss deshalb von mir so hingenommen werden.
Ich sehe deshalb keine Möglichkeit, mein Problem durch eine Pivot-Tabelle zu lösen.
Gruß Joschi
AW: Pivot-Tabelle?
18.12.2021 13:30:22
Yal
Hallo Joschi,
Dann bist Du bereit für die nächste Schritt: Umgestaltung der Daten Mithilfe von Power Query.
Wenn Du deine Daten verfremdest und die Datei hochlädst, kann ich dir eine Einleitung geben.
Aber vielleicht nicht heute. Heute ist nur das Handy an.
VG
Yal

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige