Registriert seit: 08.02.2017
Version(en): 2016
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
Registriert seit: 02.12.2017
Version(en): Microsoft365
05.10.2021, 11:11
(Dieser Beitrag wurde zuletzt bearbeitet: 05.10.2021, 11:13 von EA1950.)
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
Registriert seit: 08.02.2017
Version(en): 2016
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
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
ersetze ADD2 bitte mal nur durch "ADD". Ich hoffe es hilft, aber bitte nicht fragen warum es damit klappt!
mfg Gast 2
Registriert seit: 08.02.2017
Version(en): 2016
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
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Registriert seit: 29.09.2015
Version(en): 2030,5
17.01.2022, 19:18
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2022, 19:19 von snb.)
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
Registriert seit: 08.02.2017
Version(en): 2016
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