Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Liste nach Häufigkeit sortiert
zurück: Msgbox buttons ändern weiter: Wert bei Eingabe prüfen und bestimmte Zellen kopieren Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
schnarrenberger
Im Profil kannst Du frei den Rang ändern


Verfasst am:
28. Nov 2012, 19:18
Rufname:

Liste nach Häufigkeit sortiert - Liste nach Häufigkeit sortiert

Nach oben
       Version: Office 2007

Hallo,

ich möchte in einer Userform eine Liste im Dropdown-Steuerelement so füllen, das die Liste nach Relevanz erstellt wird.
Ausgangspunkt:
Es gibt ca. 500 Kennziffern, die mehrmals in einer Tabelle (Spalte B) mit bis zu 30000 Zeilen auftauchen. Mit dem Dropdown möchte ich diese Kennzeichen für weitere Abfragen auf ein erträgliches Maß zurecht filtern. (Viele Kennzeichen kommen zwar vor, sind aber später irrelevant, weil zu selten.)
Ich hab mir gedacht, man könnte zählen wie oft jedes Kennzeichen in der Tabelle vorkommt und dann die Top 20 oder 30 in die Dropdownliste übernehmen, wobei das Kennzeichen das am Häufigsten vorkommt ganz oben erscheint und danach das zweithäufigste usw.

Bisher hab ich meine Dropdowns mit folgendem Code erstellt, was super funktioniert (Liste ohne Doppelte):
Code:
Private Sub cbo_hauskz_Initialize()
Dim dic As Object
Dim xKey As Variant
Dim iRow As Long, ALetzte As Long

ALetzte = IIf(IsEmpty(Worksheets("Daten").Range("A65536")), Worksheets("Daten").Range("A65536").End(xlUp).Row, 65536)
Set dic = CreateObject("scripting.dictionary")
cbo_hauskz.Clear
For iRow = 2 To ALetzte
    If Not IsEmpty(Worksheets("Daten").Cells(iRow, 2)) Then
        xKey = Worksheets("Stammdaten").Cells(iRow, 2).Value
        dic(xKey) = 0
    End If
Next
For Each xKey In dic
cbo_hauskz.AddItem xKey
Next
dic.RemoveAll
Set dic = Nothing
Call Sortieren
End Sub

Private Sub Sortieren()
Dim Letzter As Integer, Naechster As Integer
Dim i As String
With cbo_hauskz
    For Letzter = 0 To .ListCount - 1
        For Naechster = Letzter + 1 To .ListCount - 1
            If .List(Letzter) > .List(Naechster) Then
               i = .List(Letzter)
               .List(Letzter) = .List(Naechster)
               .List(Naechster) = i
            End If
        Next Naechster
    Next Letzter
End With
End Sub


Aber wie bekommt man jetzt den Rest hin?

Vielen Dank im Voraus für jede Hilfe
Gruß
Schnarrenberger
rogstar
learning by doing


Verfasst am:
29. Nov 2012, 10:20
Rufname:
Wohnort: _Hessen_

AW: Liste nach Häufigkeit sortiert - AW: Liste nach Häufigkeit sortiert

Nach oben
       Version: Office 2007

Hallo,
hier mal eine Möglichkeit.
Spalte A wird ins Dictionary eingelesen. Das Dictionary wird in Spalte B geschreiben und in Spalte C die Häufigkeit. Spalten B und C werden nach Spalte C absteigend sortiert und anschließend werden die obersten 30 Einträge in die BomboBox geschrieben.
Code:
Private Sub UserForm_Initialize()
    Dim MyDic As Object, Zelle As Range, i As Long
    Set MyDic = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        For Each Zelle In .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
            MyDic(Zelle.Value) = MyDic(Zelle.Value) + 1
        Next
        .Cells(1, 2).Resize(MyDic.Count) = Application.Transpose(MyDic.keys)
        .Cells(1, 3).Resize(MyDic.Count) = Application.Transpose(MyDic.items)
        .Range(.Cells(1, 2), .Cells(.Rows.Count, 3).End(xlUp)).Sort _
            Key1:=.Cells(1, 3), Order1:=xlDescending, DataOption1:=xlSortNormal, _
            Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
        For i = 1 To 30
            ComboBox1.AddItem .Cells(i, 2)
        Next
        .Range(.Cells(1, 2), .Cells(.Rows.Count, 3).End(xlUp)).ClearContents
    End With
End Sub

_________________
Gruß, Tobias
schnarrenberger
Im Profil kannst Du frei den Rang ändern


Verfasst am:
29. Nov 2012, 11:15
Rufname:


AW: Liste nach Häufigkeit sortiert - AW: Liste nach Häufigkeit sortiert

Nach oben
       Version: Office 2007

Hallo Rogstar,

genau so sollte es sein. Super!

Vielen Dank
Schnarrenberger
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Liste abgleichen und Werte ausgeben 1 Hauke81 6007 09. Jun 2006, 14:55
LG Liste abgleichen und Werte ausgeben
Keine neuen Beiträge Excel Formeln: Namen zaehlen in Excel liste 2 espo 725 26. Mai 2006, 16:40
fridgenep Namen zaehlen in Excel liste
Keine neuen Beiträge Excel Formeln: Funktion Häufigkeit oder doch nicht? 2 kompromisslos 696 20. Mai 2006, 08:39
ransi Funktion Häufigkeit oder doch nicht?
Keine neuen Beiträge Excel Formeln: Häufigkeit zählen 19 *kerstin 2056 14. Mai 2006, 01:28
< Peter > Häufigkeit zählen
Keine neuen Beiträge Excel Formeln: Liste automatisch nach Text (Namen) sortieren 5 Frost 11104 29. Jan 2006, 21:45
ransi Liste automatisch nach Text (Namen) sortieren
Keine neuen Beiträge Excel Formeln: Liste ausgeben mit Werten aus einer Spalte 3 schiller 1045 17. Dez 2005, 01:47
schiller Liste ausgeben mit Werten aus einer Spalte
Keine neuen Beiträge Excel Formeln: Bestimmte Tage in Kalender laut Liste markieren 4 excessor 2280 30. Nov 2005, 11:46
ae Bestimmte Tage in Kalender laut Liste markieren
Keine neuen Beiträge Excel Formeln: Bezug aus Liste erstellen 4 Gast 1077 04. Nov 2005, 18:50
fridgenep Bezug aus Liste erstellen
Keine neuen Beiträge Excel Formeln: Namen aus einer Liste übertragen. 21 Aloha 2174 12. Sep 2005, 14:46
Aloha Namen aus einer Liste übertragen.
Keine neuen Beiträge Excel Formeln: Liste bei Daten G�ltigkeit 2 Niklas Caspers 930 03. Jul 2005, 23:12
Niklas Caspers Liste bei Daten G�ltigkeit
Keine neuen Beiträge Excel Formeln: Ergebnis liste 1 mchair 723 25. Mai 2005, 22:01
fl618 Ergebnis liste
Keine neuen Beiträge Excel Formeln: automatisches zugreifen aus einer liste 2 poison30m 650 07. Mai 2005, 00:28
poison30m automatisches zugreifen aus einer liste
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Macromedia Dreamweaver