Listbox ohne doppelte Werte

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm ListBox
Bild

Betrifft: Listbox ohne doppelte Werte
von: Pauline K
Geschrieben am: 14.10.2015 09:17:14

Hallo zusammen,
ich habe folgendes Problem:
Ich möchte gerne mit diesem UserForm neue Reports anlegen, die dann in der linken Box erscheinen sollen.
Userbild
Wenn ich auf "Add new report" gehe, erscheint das folgende UserForm:
Userbild
Die Daten werden aus einem Datenblatt ausgelesen, was soweit auch richtig ist. Allerdings werden die Daten, wie man sieht, doppelt und dreifach ausgelesen. Hintergrund ist, dass ich verschiedene Personen habe, die die gleichen Kennzahlen eingeben, wie hier zB "Service Parts Inventory". Ich möchte nun aber Reports für jede Person und ihre Kennzahlen erstellen, sodass am Ende, wenn ich zb beim "Start UserForm" einen Namen wähle, mir nur die Daten zu der entsprechenden Person angezeigt werden und nicht die Daten der anderen Personen.
Auch wenn ich im derzeitigen "Add new Report UserForm" (also Bild 2), nur einmal "Service Parts Inventory" rüberziehe zu "Report:", erscheinen am Ende alle Daten zu allen Personen.
Ich hoffe, ich habe mein Problem einigermaßen verständlich beschrieben und ihr könnt mir eventuell helfen.
Danke im Voraus.
Liebe Grüße

Bild

Betrifft: AW: Listbox ohne doppelte Werte
von: Daniel
Geschrieben am: 14.10.2015 09:41:33
Hi
einfachste Lösung:
alle Daten, die in die Listbox kommen zunächst ein eine freie Stelle im Tabellenblatt kopieren
dort die Funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN anwenden
diese Werte in die Listbox einlesen.
wenn du das "minimal invasiv" in deinen Code einfügen willst, dann so:
1. lege dauerhaft ein leeres zusätzliches Tabellenblatt an, bspw "xxx"
2. füge dann diesen Code ein, nachdem die Listbox fertig befüllt wurde (mit Duplikaten)

With Sheets("xxx").Cells(1, 1)
   .Resize(Listbox1.ListCount, Listbox1.ColumnCount).value = Listbox1.List
   .CurrentRegion.RemoveDupicates 1, xlno
   Listbox1.list = .CurrentRegion.Value
   .CurrentRegion.ClearContents
end with
Es gibt natürlich auch anderer Methoden, die dieses Hilfsblatt nicht erfordern, dafür sind da dann aber tiefere Eingriffe in den Code erforderlich und würden dann auch mehr als nur Basiskenntnisse in VBA erfordern.
Gruß Danie

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Listbox ohne doppelte Werte"