Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Doppelte Werte aus Array löschen
15.07.2022 14:41:25
Sk1988
Guten Tag,
Ich komme leider nicht weiter....
Ich soll eine Array befüllen, diese soll dann in eine Combobox eingefügt werden, diese sollen in der Combobox nicht mit doppelten Werten befüllt werden, dies habe ich auch mittlerweile durch Hilfe hier geschafft.
Zur richtigen Lösung sollen aber Duplikate erst gar nicht in die Array befüllt werden, bzw bevor es in die Combobox gefüllt wird, ausgefiltert / gelöscht werden.
Über der Combobox soll eine Meldung mit der tatsächlichen zahl der Einträge ohne Duplikate angezeigt werden. (z.B "Sie haben 12 Länder zur Auswahl").
Hier der Code

Private Sub UserForm_Initialize()
Dim Laender() As String,
Dim znr As Integer, zaehler As Integer, i As Integer
sn = Columns(9).SpecialCells(2)
znr = 2
zaehler = 1
Do While Cells(znr, 9)  ""
ReDim Preserve Laender(i)
Laender(i) = Cells(znr, 9)
znr = znr + 1
i = i + 1
zaehler = zaehler + 1
Loop
With CreateObject("scripting.dictionary")
For j = 2 To UBound(sn)
x0 = .Item(sn(j, 1))
Next
cmb_Laender.List = .keys
End With
Me.cmb_Laender.ListIndex = 0
End Sub
Eventuell fällt der ganze untere Teil dann weg, so das ich nur die Combobox mit den restlichen ausgefilterten Array befüllen kann.
Stehe etwas auf dem Schlauch.
viele grüße Stefan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Werte aus Array löschen
15.07.2022 15:27:29
UweD
Hallo
du schreibst bei der Version: Ohne Relevanz.
Ok. Dann bei Office 365 so...
ohne Schleife

    Dim LR As Integer, Laender
LR = Cells(Rows.Count, "I").End(xlUp).Row 'letzte Zeile der Spalte
Laender = WorksheetFunction.Unique(Range("I2").Resize(LR - 1))
Laender = WorksheetFunction.Transpose(Laender)
End Sub
LG UweD
AW: Doppelte Werte aus Array löschen
15.07.2022 15:46:35
UweD
Hier mal komplett

Private Sub UserForm_Initialize()
Dim LR As Integer, Laender
LR = Cells(Rows.Count, "I").End(xlUp).Row 'letzte Zeile der Spalte
Laender = WorksheetFunction.Unique(Range("I2").Resize(LR - 1))
cmb_laender.List = Laender
cmb_laender.ListIndex = 0
Label1.Caption = "Sie haben " & cmb_laender.ListCount & " Länder zur Auswahl"
UserForm1.Show
End Sub
LG UweD
Anzeige
AW: Doppelte Werte aus Array löschen
15.07.2022 15:49:18
Sk1988
Danke sehr !
Das Funktioniert!
AW: Doppelte Werte aus Array löschen
15.07.2022 15:48:31
Sk1988
Hallo UweD
tut mir leid, Microsoft Office Standart 2019 nutze ich.
Wenn ich das Programm durchlaufe zeigt er mir bei der Zeile

Laender = WorksheetFunction.Unique(Range("I2").Resize(LR - 1))
Laufzeitfehler 1004 an. Anwendungs- oder objektdefinierter Fehler.
Hab ich es falsch eingefügt?
Sorry wenn ich etwas verwirrt bin, ich sitz jetzt seit 3 Tagen dran und bin komplett durch den Wind.
gruß Stefan
AW: Doppelte Werte aus Array löschen
15.07.2022 16:53:14
snb
Warum hast du dich nicht beschränkt auf der vorgeschlagene Code ?
Fang mal erst an mit einen Anfänger Kurs für VBA.
Anzeige
AW: Doppelte Werte aus Array löschen
15.07.2022 17:54:23
Sk1988
Ich verstehe ja den meisten Teil, ob es Schleifen oder IF-Bedingungen sind.
Aber jetzt gerade kapier ich nicht, wie ich die Array auf doppelte Werte prüfe, bzw wie ich dafür sorge das es nicht eingefügt / übersprungen wird.....
Meine Idee ist das es auch mit einer IF Anweisung klappen muss....
ganz einfach gesehen
IF "wert ist vorhanden" Then
Zeile überspringen
Else "Wert ist nicht vorhanden" Then
eintragen in Array
Ich hab Google bis auf Seite 15 komplett durchsucht aber ich weiß nicht, wie ich es umsetzen kann.
gruß stefan

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige