Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

ComboBox.List sortieren
#1
Hallo!

Ich habe eine ComboBox.List, welche ich gerne nach der Spalte B sortiert haben will. Anbei mein aktueller Code:

Code:
Private Sub UserForm_Activate()

individuelleAuszahlung.Caption = "individuelle Auszahlung beantragen"

Dim letzte As Long
letzte = Sheets("Benutzer").Cells(Rows.Count, "B").End(xlUp).Row
 
ComboBox1.List = Sheets("Benutzer").Range("B9:B" & letzte).Value

Range("A9").Select

End Sub


Das Ergebnis in der Liste sollte dann alphabetisch sortiert werden, sprich ganz oben soll A und unten soll Z stehen.

Ich hoffe, dass mir jemand helfen kann.

LG
Thomas
Excel Version 2016
Antworten Top
#2
Hallo,

folgendes Makro anstelle des bisherigen sollte die Sortierung ermöglichen:
Code:
Private Sub UserForm_Activate()

   Dim letzte As Long, rngCboList As Range

   individuelleAuszahlung.Caption = "individuelle Auszahlung beantragen"
   
   With Worksheets("Benutzer")
      letzte = .Cells(Rows.Count, "B").End(xlUp).Row
      Set rngCboList = .Range("B9:B" & letzte)
   End With
   SortiereBereich rngCboList
   
   ComboBox1.List = rngCboList.Value
   
   Range("A9").Select

End Sub

Sub SortiereBereich(rngSort As Range)
'
    With rngSort.Worksheet.Sort
        With .SortFields
          .Clear
          .Add2 Key:=rngSort, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        End With
        .SetRange rngSort
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   
End Sub
Mit lieben Grüßen
Anton.

Windows 10 64bit
Office365 32bit
Antworten Top
#3
Hallo EA1950!

Sorry, dass ich erst jetzt antworte.
Ich habe deinen Code nun probiert, aber leider kommt dann, wenn ich die ComboBox anklicke, folgende Fehlermeldung:

Laufzeitfehler 438:
Objekt unterstützt diese Eigenschaft oder Methode nicht

Wenn ich dann auf "Debuggen" klicke, wird dann folgender VBA Zeile gelb markiert:

.Add2 Key:=rngSort, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Ich hoffe, dass du mir noch einmal weiterhelfen kannst.

LG
Thomas
Excel Version 2016
Antworten Top
#4
Hallo

ersetze ADD2 bitte mal nur durch "ADD".  Ich hoffe es hilft, aber bitte nicht fragen warum es damit klappt!
                           
mfg Gast 2
Antworten Top
#5
Hallo!

Danke sehr für den Hinweis. Jetzt kommt die Fehlermeldung nicht mehr und die ComboBox ist nun auch alphabetisch sortiert.
Nun ist es aber so, dass die Spalte B im Excel Tabellenblatt auch sortiert wird, was ich nicht will. Ich will ja lediglich nur, dass die ComboBox alphabetisch sortiert ist und das Tabellenblatt soll nicht sortiert nicht werden, oder geht das nicht?

LG
Thomas
Excel Version 2016
Antworten Top
#6
Hallo Thomas,

Code:
Private Sub UserForm_Activate()
  Dim lngLetzte As Long
  Dim varListe As Variant
  
  individuelleAuszahlung.Caption = "individuelle Auszahlung beantragen"
  lngLetzte = Sheets("Benutzer").Cells(Rows.Count, "B").End(xlUp).Row
  With Sheets("Benutzer").Range("B9:B" & lngLetzte)
    varListe = .Formula
    .Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlNo
    ComboBox1.List = .Value
    .Formula = varListe
  End With
End Sub

Gruß Uwe
Antworten Top
#7
Code:
Private Sub Userform_Initialize()
  with Sheets("Benutzer")
    .usedrange.columns(2).copy .cells(1,100)
    .cells(1,100).currentregion.sort .cells(1,100),,,,,,,1
    combobox1.list=.cells(1,100).currentregion.value
    .columns(100).clear
  end with
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Hallo Kuwer!

Danke für den Code.
Sehe ich das richtig, dass die Spalte B zuerst alphabetisch sortiert wird und dann wieder zurück sortiert wird?
Ich nehme an, dass das anders nicht möglich ist, dass die Spalte B vorher sortiert werden muss, oder?

Auf jeden Fall funktioniert es. Danke nochmals.

LG
Thomas
Excel Version 2016
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste