Anzeige
Archiv - Navigation
1276to1280
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox befüllen dauert lange

Listbox befüllen dauert lange
karl
Hallo zusammen,
ich befülle ein Listbox MIT ca 2500 Zeilen/je 10 Spalten
über eine Schleife (add Item) weil ich einige Spalten der LB formatiert haben möchte.
Funktioniert auch
ABER
bei ca. 2500 Zeilen dauert das recht lange.
Lässt sich das beschleunigen, die Formatierung möchte ich beibehalten
Datei abgespeckt, keine 2500 Zeilen
https://www.herber.de/bbs/user/81735.xls
sage wie immer recht herzlichen dank
karl

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox befüllen dauert nicht lange
06.09.2012 15:29:48
Rudi
Hallo,
Private Sub CommandButton1_Click()
Dim lRow As Long
Dim lastRow As Long
Dim objList As Object
Set objList = CreateObject("Scripting.dictionary")
UserForm1.ListBox1.Clear
UserForm1.ListBox1.ColumnCount = 10
UserForm1.ListBox1.ColumnWidths = "45;45;45;45;45;45;45;45;45;45"
'UserForm1.ListBox1.TextAlign = fmTextAlignLeft
With Sheets("Daten")
lastRow = .Range("A" & Sheets("Daten").Rows.Count).End(xlUp).Row
For lRow = 6 To lastRow
objList(lRow) = Array( _
.Cells(lRow, 1).Value, _
.Cells(lRow, 2).Value, _
.Cells(lRow, 3).Value, _
Format(.Cells(lRow, 4), "#,##0.00"), _
.Cells(lRow, 5).Value, _
Format(.Cells(lRow, 6), "#,##0.00"), _
Format(.Cells(lRow, 7), "#,##0.00"), _
.Cells(lRow, 8).Value, _
Format(.Cells(lRow, 9), "#,##0.00"), _
Format(.Cells(lRow, 10), "#,##0.00"))
Next
End With
ListBox1.List = WorksheetFunction.Transpose(WorksheetFunction.Transpose(objList.items))
End Sub

Gruß
Rudi

Anzeige
.List=array
06.09.2012 15:36:22
ransi
HAllo
Wenn du das in einem Array machst, gehts so schnell das du es nicht merkst...
Teste mal:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
Dim lRow As Long
Dim lastRow As Long
Dim L As Long
UserForm1.ListBox1.Clear

'UserForm1.ListBox1.TextAlign = fmTextAlignLeft
Dim arr
lastRow = Sheets("Daten").Range("A" & Sheets("Daten").Rows.Count).End(xlUp).Row
With Sheets("Daten")
    arr = .Range(.Cells(6, 1), .Cells(.Rows.Count, 10).End(xlUp))
End With
For L = LBound(arr) To UBound(arr)
    arr(L, 4) = Format(arr(L, 4), "#,##0.00")
    arr(L, 6) = Format(arr(L, 6), "#,##0.00")
    arr(L, 7) = Format(arr(L, 7), "#,##0.00")
    arr(L, 9) = Format(arr(L, 9), "#,##0.00")
    arr(L, 10) = Format(arr(L, 10), "#,##0.00")
Next
With ListBox1
    .List = arr
    .ColumnCount = 10
    .ColumnWidths = "45;45;45;45;45;45;45;45;45;45"
End With
End Sub


ransi

Anzeige
AW: .List=array
06.09.2012 16:28:44
karl
Hallo Rudi, ransi
echt super.
Der Code von Rudi ist um ein xfaches schneller als mein code.
Jedoch muss ich sagen das der code von ransi noch ein tucken schneller ist.
Rechtherzlichen dank euch beiden
karl

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige