habe leider mal wieder eine Frage.
Ich habe auf einer UF eine Combobox, welche über eine Suchfunktion aus vielen Blättern befüllt wird.Werte kommen häufig doppelt vor. Daher habe ich einen hier im Forum gefundenen Code modifiziert und an meine Belange angepasst. Wohl nicht ganz korrekt, denn meine Box wird befüllt, aber ich habe viele, viele doppelte Werte.
Kann mir jemand sagen, wo mein Fehler liegt?
Sub ComboOhne()
'Testcode Combobox sortiert ohne Doppel
Dim objDictionary As Object
Dim varBereich As Variant
'Dim loZaehler As Long
Dim arrDaten
'Dim lngLetzte As Long
Dim Last As Integer, i As Integer
Dim ws As Worksheet
Dim ws1 As Worksheet
'lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
Set objDictionary = CreateObject("Scripting.Dictionary")
' With Worksheets("Tabelle1")
' varBereich = .Range(.Cells(2, 1), Cells(lngLetzte, 1))
' End With
' ' Schleife über alle Werte des Bereichs
' For loZaehler = LBound(varBereich) To UBound(varBereich)
' ' Eintrag wird nur übernommen wenn er im DictionaryObject noch nicht enthalten ist
' objDictionary(varBereich(loZaehler, 1)) = 0
' Next
For Each ws In twb.Worksheets
If ws.Name "Center" And ws.Name "Hardware" And ws.Name "hwvlg" And ws.Name " _
data" And ws.Name "Druckvorlage" And ws.Name "Protokoll" Then
Set ws1 = twb.Worksheets(ws.Name)
Last = ws1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To Last
'If ws1.Cells(i, 3).Value "" Then
objDictionary(ws1.Cells(i, 3)) = 0
'End If
Next i
End If
Next
' Werte in ein Array übergeben
arrDaten = objDictionary.keys
' sortieren von A nach Z
' Lbound kleinster Wert,UBound Größter Wert
Sort_Z_A arrDaten, LBound(arrDaten), UBound(arrDaten)
Me.ComboBox1.List = arrDaten
'-------Ende-------------
End Sub
Sortierfunktion ist als weitere
Sub vorhanden und funktioniert ebenso.
Der auskommentierte Code stammt vom originalem Code, den ich im folgenden angepasst habe.
Viele Grüße, Frank