Zum Inhalt springen

Löschen von doppelten Einträgen in Combobox


Empfohlene Beiträge

Geschrieben

Ich habe ein Array mit mehreren Namen geladen. Nun habe ich aber das Problem dass einige Name mehrmals auftauchen. Wie kann ich nun eine Abfangroutine schreiben damit, wenn der Name doppelt oder öfter auftritt gelöscht wird??

Geschrieben

da du ja für jeden mist gleich nen thread aufmachst würde ich dir raten erstmal nachzudenken... ich denke das bringt dir mehr und dieses "problem" solltest du auch alleine lösen können, einfach mal gedanken machen ;)

Geschrieben

ich würde im vorfeld schon mal garkeine doppelten einträge kumulieren. wenn du deine combobox/dein array mit daten aus einer sql-abfrage füllst, würde ich mal bei "distinct" oder "group by" anfangen.

s'Amstel

Geschrieben

Also

wenn stört es denn erheblich was ich hier für Probleme vorbringe?? Würde ich Fragen stellen wie: Was soll ich heute anziehn? Alles klar seh ich ein. Aber: Sinn und Zwecks eines Forums is die gemeinsame Lösung von Problemen, odr nicht? Und andere Leute lesen die Beiträge mit den Lösungen weil sie ähnliche Probleme haben und ihnen hier vielleicht geholfen werden kann, wenn auch nicht dirket. Was SQL angeht, kein Plan. Ich bastel hier mit VBA und mehr nicht, trotzdem Danke

Geschrieben
Sinn und Zwecks eines Forums is die gemeinsame Lösung von Problemen, odr nicht?
Es ist dir vielleicht nicht klar, aber dein "Problem" ist eigentlich ziemlich trivial. Einen passenden Algorithmus kannst du sehr leicht aus dem echten Leben entnehmen. Angenommen, du sammelst irgendwelche Sammelkarten, und du willst keine doppelten. Jetzt kaufst du ein neues Paket. Wie stellst du sicher, dass du die doppelten aussortierst, bevor du sie in deine Sammelkiste packst?

Du vergleichst jede Karte in deiner Sammelkiste mit der ersten Karte aus dem Paket. Wenn du dabei keine Karte findest, die der neuen gleicht, kommt die neue in die Kiste. Ansonsten nicht. Dann machst du das gleiche mit der nächsten Karte im Paket.

Jetzt ersetzt du "Paket" durch "Array", "Karte" durch "Name" und "Sammelkiste" durch "Combobox". Fertig ;)

Geschrieben

Das nanne ich doch mal ne ordentliche Lösung, und schön plastzisch dargestellt. Der Weg denn du beschrieben hast ist mir klar. Auch dass ich das am Besten mit Schleifen hinbekomme, aber: Irgendwo bleibt es immer hängen und ich kriege es einfach nicht abgefangen. Ist mein Problem zu trivial, lest es euch nur durch und denkt, das ist mir zu trivial. Dann braucht ihr nicht antwoorten und alles ist im Grünen Bereich.

So weit bin ich, nun fehlt nur noch das Abfangen

Private Sub UserForm_Activate()

i = 1

x = 1

Do

kuenstler(i) = Sheets("Tabelle1").Cells(i, 1)

album(i) = Sheets("Tabelle1").Cells(i, 2)

ComboBox1.AddItem kuenstler(i)

i = i + 1

Loop Until Sheets("Tabelle1").Cells(i, 1) = ""

TextBox2.Text = Str(i)

ComboBox1.ListIndex = 0

End Sub

Geschrieben
Irgendwo bleibt es immer hängen und ich kriege es einfach nicht abgefangen.

dann zeig doch mal das coding dass du schon hast und dann suchen wir den fehler... hat auf jedenfall nen besseres lerneffekt als wenn hier jemand ne C&P lösung für dich hinstellt... :)

edit: guuuuut :D

edit2: also, jetzt machst du vor dem neuen eintrag in das array ein loop über das array mit dem neuen wert... wenns den wert schon gibt setz meinetwegen ne hilfsvariable auf 1, die dir dann anzeigt dass der artist nicht nochmal hinzugefügt werden muss...

klaro? :)

Geschrieben

Bin jetzt hier:

Private Sub UserForm_Activate()

i = 1

x = 1

Do

kuenstler(i) = Sheets("Tabelle1").Cells(i, 1)

album(i) = Sheets("Tabelle1").Cells(i, 2)

ComboBox1.AddItem kuenstler(i)

i = i + 1

Loop Until Sheets("Tabelle1").Cells(i, 1) = ""

maxx = i

x = i

For i = 1 To maxx

For x = (maxx - 1) To 2 Step -1

If kuenstler(i) = kuenstler(x) And i <> x Then

ComboBox1.RemoveItem kuenstler(x)

Else

End If

Next

Next

TextBox2.Text = Str(i)

ComboBox1.ListIndex = 0

End Sub

Aber so richtig klappt es nicht, bei RemoveItem bleibt er immer stehn?????!!!!

Geschrieben

check das ganze doch BEVOR du es in die box schreibst... als, du hast dein array und den wert in der tabelle, prüf den wert der tabelle gegen das arra< und mach DANN wenn noch nötig denn add... nicht erst adden und dann raussuchen...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...