Microsoft Excel

Herbers Excel/VBA-Archiv

Combobox Probleme mit sort. und doppelten Werten | Herbers Excel-Forum


Betrifft: Combobox Probleme mit sort. und doppelten Werten von: chris b.
Geschrieben am: 27.01.2010 12:06:55

Hallo VBA experten,
ich frage hier nach weil ich einfach nichts finde das so klappt wie ich es will :(
Ich habe eine ganz einfache Form erstellt auf dieser habe ich eine Combobox.
Und diese will ich nur mit werten aus einer Spalte befüllen.
Spalte J ab Zeile 5 bis zum letzten eintrag.Dazwischen können auch leerzellen sein diese natürlich nicht.
Ich schaffe es einfach nicht die daten so einzufügen das Sie sortiert sind.
Obwohl ich schon mehere gefunden habe die Sortieren.
Aber keine Anzeige ist dann so wie die Werte angezeigt werden wie in Excel mit dem Autofilter.
Wie bekomme ich die Werte so eingetragen ? Was auch noch wichtig ist das keine Doppelten Werte in die userform eingetragen werden.
Könnt Ihr mir bitte helfen ?
Vielen Dank

  

Betrifft: https://www.herber.de/forum/messages/1133233.html von: NoNet
Geschrieben am: 27.01.2010 12:14:19

Hallo Chris,

fast exakt die gleiche Frage habe ich gestern beantwortet - siehe hier :

https://www.herber.de/forum/messages/1133233.html

Anstelle der 4 (Spalte D) musst du entsprechend 10 (Spalte J) einsetzen !

Gruß, NoNet


  

Betrifft: AW: https://www.herber.de/forum/messages/1133233.html von: chris b.
Geschrieben am: 27.01.2010 12:28:15

Hi NoNet,
auch dieser Code klappt nicht so wie ich es mir vorgestellt habe :(
Das liegt sicher an der Programmierung vor mir.
Vielen Dank Dir auf jeden fall für Deine Hilfe !!!
gruß Chris


  

Betrifft: AW: Combobox Probleme mit sort. und doppelten Werten von: Tino
Geschrieben am: 27.01.2010 12:21:09

Hallo,
kann man z. Bsp. so machen.

Erst doppelte raus danach mit Quicksort sortieren.

kommt als Code in UserForm1

Option Explicit 
 
Private Sub UserForm_Initialize() 
Dim meAr() 
With Tabelle1 
     meAr = .Range("J5", .Cells(.Rows.Count, 10).End(xlUp)).Value2 
End With 
 
Call DoppelteRaus(meAr) 
Call QuickSort(meAr, Lbound(meAr), Ubound(meAr)) 
ComboBox1.List = meAr 
End Sub 
 
kommt als Code in Modul1
Option Explicit 
 
Sub DoppelteRaus(ByRef meAr()) 
Dim oDic As Object 
Dim A As Long 
Set oDic = CreateObject("Scripting.Dictionary") 
 
For A = 1 To Ubound(meAr) 
 If meAr(A, 1) <> "" Then 
    oDic(meAr(A, 1)) = 0 
 End If 
Next A 
 
meAr = oDic.keys 
End Sub 
 
Sub QuickSort(ByRef sArray As Variant, ByVal MinElem As Long, MaxElem As Long) 
Dim Mitte As Long 
Dim vDummy As Variant 
Dim i As Long, j As Long 
 
    If MinElem > MaxElem Then 
        ' 
        ' Rekursion beenden 
        ' 
        Exit Sub 
    End If 
 
    Mitte = (MinElem + MaxElem) \ 2 
 
    i = MinElem 
    j = MaxElem 
    Do 
 
        Do While sArray(i) < sArray(Mitte) 
            i = i + 1 
        Loop 
 
        Do While sArray(j) > sArray(Mitte) 
            j = j - 1 
        Loop 
  
        If i <= j Then 
 
            vDummy = sArray(j) 
            sArray(j) = sArray(i) 
            sArray(i) = vDummy 
 
            i = i + 1 
            j = j - 1 
        End If 
  
    Loop Until i > j 
    ' 
    ' Rekursiver Aufruf mit den Teil-Arrays 
    ' 
    QuickSort sArray, MinElem, j 
    QuickSort sArray, i, MaxElem 
End Sub 
Gruß Tino


  

Betrifft: AW: Combobox Probleme mit sort. und doppelten Werten von: chris b.
Geschrieben am: 27.01.2010 12:33:54

Danke noche inmal NoNet,
aber Tino deine Lösung klappt 100% vielen dank noch einmal an euch beide !!


Beiträge aus den Excel-Beispielen zum Thema "Combobox Probleme mit sort. und doppelten Werten"