Excel VBA - Tabelle filtern und ListBox füllen

MickH74

Lieutenant
Registriert
Apr. 2009
Beiträge
591
Hallo Forum,

sitze nun schon eine Weile an einer Lösung zu einem Excel-Problem und würde gerne wissen, ob ihr vielleicht einen guten Lösungsvorschlag habt.

Die Aufgabe:
Es gibt eine ziemlich große Tabelle mit Produktdaten. Im Moment sind es etwa 500 Produkte und jedes Produkt hat etwa 30 Eigenschaften.
Nun soll der Benutzer die Möglichkeit haben, in einer ListBox bestimmte Produkte und ausgewählte Eigenschaften zu vergleichen.
Er könnte also z.B. sagen: "Ich möchte die Produkte X, Y und Z sehen und für diese Produkte die Eigenschaften 9, 15, 16 und 19 vergleichen."
Man muss also nicht nur die Produkte (also Zeilen) filtern, sondern gleichzeitig auch noch die Eigenschaften (also Spalten).

Im Augenblick löse ich das so, dass die Zeilen und Spalten der nicht gewählten Produkte und Eigenschaften ausgeblendet werden. Dann kopiere ich die übrig gebliebenen sichtbaren Zellen mit .Cells.SpecialCells(xlCellTypeVisible).Copy in ein separates Tabellenblatt und fülle damit die ListBox. Der Kopiervorgang ist allerdings sehr zeit- und rechenaufwendig (oft bekomme ich sogar ein "Arbeitsspeicher reicht nicht aus" und ich hab 16 GB Ram).

Hat jemand eine bessere Idee?
 
Der Anwender sucht also über ein Formular? Dann mußt Du also für das Formular entsprechenden Code schreiben, der die Daten sucht und ausliest und dann in Ergebnis-Zellen des Formulars oder einem Tabellenblatt zur Verfügung stellt.

Filterfunktionen und Kopieren dauert da viel zu lange.


Aber ehrlich - verwende für so etwas besser eine Datenbank
 
Moin,

Datenbank wäre wohl die bessere Lösung. Aber das ist ja nicht jedermanns Sache ... Versuche es einmal mit einer PivotTabelle, da ist auch so einiges machbar.
 
Meint ihr mit Datenbank den Umstieg auf ein anderes Programm wie z.B. Access oder meint ihr den Zugriff auf eine Datenbank von Excel aus? Beides wäre für mich komplett neu.
 
Nur der Umstieg ist sinnvoll.

Access ist ein wenig… teuer… Wenn es genügt LibreOffice & Co anzustrengen könntest du dich da versuchen. Denn solche ›wilden‹ Abfragen - das ‹sind› Datenbanken, das muss man nicht über VBA einer Tabellenkalkulation nacherfinden.

CN8
 
Ja, ich meine Access.
Und in Sachen "Libre Office" & Co. sehe ich das anders als CN8. Die Schar der tendenziellen Helfer ist bei Access ERHEBLICH größer als bei den freien Lösungen. Gleiches gilt für Musterlösungen im Netz und auch Literatur.
 
Das einzige was dem Ratschlag widerspräche wäre meine Brieftasche :D
Und so lange man kein Geld ausgeben will mag BASE mal reichen in die Mechaniken reinzuschnuppern.
CN8
 
Ich bin leider an die Programme gebunden, die wir in der Firma auf den Rechnern haben. Da gehört leider kein Access dazu :-( Ansonsten stimme ich euch aber zu, dass das der bessere Lösungsansatz wäre.

Werde die verschiedenen Eigenschaften in Tabs gruppieren und mit einem Multiseiten-Element arbeiten. So kann man die Eigenschaften zwar nicht filtern, aber durch die Tabs bleibt es trotzdem übersichtlich.

Vielen Dank für Eure Hilfe!
 
Zurück
Oben