Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1132to1136
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
ComboBox filtern und sortieren
Maik.F
Hallo!
Folgendes Problem: In der A-Spalte stehen verschiedene Datums-Werte:
A1: 01.02.2010
A2: 01.02.2010
A3: 30.01.2010
Ich habe in einer Userform eine ComboBox, die die Werte der A-Spalte sortiert und gefiltert auflisten soll. Im Ergebnis sollen die Datumswerte wie folgt aufgelistet werden:
30.01.2010
01.02.2010
Wer kann mir da helfen?
Gruß, Maik

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ComboBox filtern und sortieren
04.02.2010 08:28:33
Josef
Hallo Maik,

kopiere folgende Funktion und die Prozedur in das Modul des UF, die Anwendung siehst du im Beispiel.

Private Sub UserForm_Activate()
  'Beispiel
  ComboBox1.List = UniqueList(Range("A1:A25"))
End Sub

Function UniqueList(Matrix As Range, Optional Sorted As Boolean = True) As Variant
  Dim objDic As Object, rng As Range, varTmp() As Variant
  
  Set objDic = CreateObject("Scripting.Dictionary")
  
  For Each rng In Matrix
    If rng.Value <> "" Then objDic(rng.Value) = 0
  Next
  
  varTmp = objDic.keys
  
  If Sorted Then QuickSort varTmp
  
  UniqueList = varTmp
  
  Set objDic = Nothing
End Function

Private Sub QuickSort(data() As Variant, Optional UG, Optional OG)
  Dim P1&, P2&, T1 As Variant, T2 As Variant
  
  UG = IIf(IsMissing(UG), LBound(data), UG)
  OG = IIf(IsMissing(OG), UBound(data), OG)
  
  P1 = UG
  P2 = OG
  T1 = data((P1 + P2) / 2)
  
  Do
    
    Do While (data(P1) < T1)
      P1 = P1 + 1
    Loop
    
    Do While (data(P2) > T1)
      P2 = P2 - 1
    Loop
    
    If P1 <= P2 Then
      T2 = data(P1)
      data(P1) = data(P2)
      data(P2) = T2
      P1 = P1 + 1
      P2 = P2 - 1
    End If
    
  Loop Until (P1 > P2)
  
  If UG < P2 Then QuickSort data, UG, P2
  If P1 < OG Then QuickSort data, P1, OG
  
End Sub

Gruß Sepp

Anzeige
AW: ComboBox filtern und sortieren
04.02.2010 08:39:30
Maik.F
Hallo Sepp,
der Code funktioniert super! Vielen Dank!
Nun kann es aber noch vorkommen, dass ein Datumswert fehlt. Dann wird in der ComboBox-Liste eine leere Zeile angezeigt. Wie kann ich es erreichen, dass leere Werte nicht zur Auswahl stehen?
Gruß, Maik
AW: ComboBox filtern und sortieren
04.02.2010 11:51:49
Josef
Hallo Maik,

leere Zellen werden nicht in die Liste aufgenommen, also sind deine Leerzellen nicht leer!
Wenn die Daten als Formel in der Zelle stehen, dann hast du warscheinlich " " ,statt "" verwendet.

Gruß Sepp

Anzeige

243 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige