Microsoft Excel

Herbers Excel/VBA-Archiv

Listbox aus mehreren Tabellenblättern

Betrifft: Listbox aus mehreren Tabellenblättern von: Milena Drude
Geschrieben am: 21.01.2021 15:54:30

https://www.herber.de/bbs/user/143199.xlsm

Hallo Zusammen,

ich habe versucht in meiner Exceltabelle verschiedener chemischer Stoffe eine Suchfunktion einzubauen, die in jeder Spalte der Tabellen nach dem im Textfeld eingegebenen Begriff suchen soll.

Dazu würde ich gern alle Daten in die Listbox darunter einlesen und dann Schrittweise alle Daten, die den Suchbegriff oder die Buchstaben nicht enthalten, dann weiter rauslöschen.
Dies kann in der Beispiel Excel gesehen werden und funktioniert für das erste Tabellenblatt schon einwandfrei.

Das einzige was mir nun fehlt ist, dass ich nicht nur das erste Tabellenblatt, sondern die Daten aus allen Tabellenblättern untereinander in die Listbox kriegen will, sodass ich sozusagen durch alle Tabellenblätter suchen kann.

Ich vermute, dass dies mit einem Array oder so möglich ist, allerdings sind meine VBA-Skills in der Hinsicht sehr beschränkt und ich würde mich über Ideen eurerseits sehr freuen.

Vielen Dank im Voraus und ich hoffe das war ausgiebig genug erklärt.

Viele Grüße, Milena

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: ralf_b
Geschrieben am: 21.01.2021 19:34:52

es sind einige functions hinzugekommen um z.b. den Blattnamen in eine Spalte des Arrays einzuschreiben. Diese Spalte ist in der Listbox ausgeblendet. Für den Fall das du wissen mußt in welchem Blatt die Werte stehen, kannst du es ja sichtbar machen.

https://www.herber.de/bbs/user/143209.xlsm

gruß

rb

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Milena Drude
Geschrieben am: 27.01.2021 10:29:10

Hallo Ralf,

entschuldige die späte Rückmeldung.

Vielen Dank für den tollen und aufwendigen Code, er funktioniert einwandfrei! Perfekt :)

Du hast es schon angesprochen, deswegen wollte ich nochmal kurz nachfragen; wie könnte ich denn nun auch noch den Sheetsname als eine eigene Column einfügen?

Vielen Dank nochmal und beste Grüße,
Milena

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Werner
Geschrieben am: 27.01.2021 13:41:59

Hallo,

das hat dir Ralf doch schon geschrieben.
Die jeweiligen Blattnamen werden schon mit eingelesen. Allerdings ist die entsprechende Spalte ausgeblendet (Spaltenbreite wurde im Code auf 0 gesetzt)
.ColumnWidths = "260;120;200;200;0"

Du brauchst dort nur eine entsprechende Spaltenbreite einzustellen, dann siehst du die Spalte auch.
.ColumnWidths = "260;120;200;200;100"
Gruß Werner

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Milena Drude
Geschrieben am: 27.01.2021 14:04:39

Hallo Werner,

okay das hatte ich nicht ganz verstanden! Super, danke für die Erklärung.

viele Grüße,
Milena

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Milena Drude
Geschrieben am: 27.01.2021 14:25:40

Hallo Zusammen,

aus dem gut funktionierenden Code von oben hat sich nun doch noch eine Frage entwickelt.
Kann ich durch den Doppelklick auf eine Zeile der Listbox es so hinkriegen, dass er genau zu der Zeile in der Tabelle springt und die Userform schließt? Also die Zeile sozusagen sucht und öffnet, sodass ich direkt in der jeweiligen Zeile lande? Vielleicht sogar farblich markiert oder so?

Danke schonmal und viele Grüße Milena

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: ralf_b
Geschrieben am: 27.01.2021 15:52:02

du wolltest die Zeile doch löschen oder? Es macht wenig Sinn eine Userform zu nutzen, um dann doch in den Quelldaten von Hand zu arbeiten.



Was hast du denn genau vor?





gruß



rb

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Milena Drud
Geschrieben am: 27.01.2021 16:13:16

Hallo,

nein, die Zeilen an sich werden nicht gelöscht. Mit Löschen meinte ich nur die Zeilen in der Textbox die nicht den gesuchten Inhalt enthalten.

Das Tool soll mir verschiedene Werte zu meinem Suchbegriff (z.B. Ethanol) ausgeben. Wenn ich dann also nach Ethanol suche, findet er vermutlich verschiedene Faktoren auf den verschiedenen Seiten aus verschiedenen Quellen. Ich möchte mich dann also wenn ich die in der Übersicht vergleichen konnte, für einen Wert entscheiden, und dazu ggf. mehr Infos haben, als die in der Listbox angezeigt werden. Dazu würde ich dann gern in die entsprechende Zeile in der Excel Tabelle springen.

Ich hoffe das macht es etwas anschaulicher.

Viele Grüße und Danke,

Milena

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: ralf_b
Geschrieben am: 27.01.2021 16:53:16

Hallo,

also dazu gibt es sicher Möglichkeiten. Sind denn noch andere Informationen in dem Datensatz als die 4 Spalten? Im Beispiel ist nur noch eine Kommentarspalte.

Mann könnte eine weitere Userform mit weiteren Details des Datensatzes einblenden. Ich stelle mit das Handling von Tabellenblatt zu Userform und zurück umständlich vor.

gruß
rb


Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Milena Drude
Geschrieben am: 28.01.2021 15:52:34

Hallo Ralf,



nein tatsächlich kommt nur noch die Kommentarspalte jedoch ist die oft ziemlich voll.

Es ist auch teilweise so, dass man in der Userform Listbox nicht zu 100% die Infos der Sources zum Beispiel sehen kann. D.h. wenn man dann auf die jeweilige Info in der Tabelle springen könnte wäre das halt cool, aber ich verstehe den Punkt..



wäre es vielleicht möglich, dann die Userform offen zu lassen, sodass man dann ggf. weitersuchen kann, falls es einem nicht gefällt was man findet?



Ansonsten fällt mir im ersten Moment auch nichts schlaueres ein..



viele Grüße, Milena

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: ralf_b
Geschrieben am: 28.01.2021 16:49:30

uf bei klick auf zeile
https://www.herber.de/bbs/user/143385.xlsm

Betrifft: AW: Listbox aus mehreren Tabellenblättern
von: Milena Drude
Geschrieben am: 28.01.2021 17:11:50

Cool, das gefällt mir sehr gut! Vielen Dank für die Lösung!

Viele Grüße