brauche dringend eure Hilfe mit einer Listbox und deren Sortierung. Ich habe eine Listbox mit 5 Spalten. Ich importiere Daten aus einer anderen Datei in eine Hilfstabelle (Sheet3) in ThisWorkbook.
Sub Start_OverdEU()
Dim X As Long
Dim FileQ As String, WBQ As String, WSQ As String
FileQ = "C:\Users\torsten.wetzel\Documents\Torsten.Wetzel\Office\EXCEL\GBC Tools\Activity _
Tracker shared\Activity_Tracker_21G Test.xlsm"
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error Resume Next
Workbooks.Open Filename:=FileQ
If Err.Number > 0 Then MsgBox Err.Description
On Error GoTo 0
Application.EnableEvents = True
WBQ = "Activity_Tracker_21G Test.xlsm"
WSQ = "Expediting - Overdues 1"
With Workbooks(WBQ).Sheets(WSQ)
X = .Range("C" & Rows.Count).End(xlUp).Row
ThisWorkbook.Sheets("Sheet3").UsedRange.Clear
.Range("C11:K" & X).Copy ThisWorkbook.Sheets("Sheet3").Range("A1")
End With
Application.Wait (Now + TimeValue("00:00:02"))
Workbooks(WBQ).Close savechanges:=False
Call SortList
Application.ScreenUpdating = True
Application.Wait (Now + TimeValue("00:00:02"))
OverdEU.Show
End Sub
Wie ihr seht, versuche ich mit "Call SortList" diese importierten Daten zu sortieren:Sub SortList()
Dim strColumn As String
Dim strRange As String
Dim X As Long
With ThisWorkbook.Sheets("Sheet3")
X = .Range("A" & Rows.Count).End(xlUp).Row
strRange = "A1:I" & X
strColumn = "E"
Range(strRange).Sort Key1:=Range(strColumn & "1"), Order1:=xlAscending, Header:=xlNo
End With
End Sub
und will dann die Listbox mit den sortierten Daten fuellen:Private Sub UserForm_Initialize()
Dim I As Integer
Dim X As Long
Me.LBOverdEU.Clear
X = ThisWorkbook.Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To X
Me.LBOverdEU.ColumnCount = 5
Me.LBOverdEU.ColumnWidths = "6cm;3cm;1cm;6cm;3cm"
Me.LBOverdEU.AddItem
LBOverdEU.List(LBOverdEU.ListCount - 1, 0) = ThisWorkbook.Sheets("Sheet3").Cells(I, 1). _
Text
LBOverdEU.List(LBOverdEU.ListCount - 1, 1) = ThisWorkbook.Sheets("Sheet3").Cells(I, 5). _
Text
LBOverdEU.List(LBOverdEU.ListCount - 1, 2) = ThisWorkbook.Sheets("Sheet3").Cells(I, 6). _
Text
LBOverdEU.List(LBOverdEU.ListCount - 1, 3) = ThisWorkbook.Sheets("Sheet3").Cells(I, 7). _
Text
LBOverdEU.List(LBOverdEU.ListCount - 1, 4) = ThisWorkbook.Sheets("Sheet3").Cells(I, 9). _
Text
Next I
End Sub
Soweit so gut. Die Codes funktionieren auch einzeln. Nur zusammen nicht. Wenn ich den Sortiercode manuell starte nach dem Import und dann den Code zum Fuellen der Listbox starte, klappt alles wunderbar. Lasse ich aber alles von Anfang bis Ende durchlaufen, wird mir die Listbox gefuellt mit den importierten Daten, aber nicht sortiert.Dachte, dass der Code vielleicht zu schnell durchlaeuft und habe schon mal Stops eingebaut mit Application.Wait. Hilft aber nicht.
Beim Einzelschrittdurchlauf (F8) funktioniert es mit dem Sortieren.
Bitte sagt mir, was ich falsch mache. Wo liegt mein Denkfehler?
Vielen Dank im Voraus.
Gruss Torsten