Mein Ziel ist es eine mehrspaltige Listbox nach Kriterium zu erzeugen und ich versuche dabei den Code so optimal wie möglich zu halten. Anbei sind zwei Code die mehrspaltige Listbox auslesen können. Das Ergebnis sind die gleichen.
Dim o as integer, u as integer
o = Stammdaten.Range("F:F").Find(Eingabeblatt.Range("bereich").Value, LookIn:=xlValues).Row
For u = Stammdaten.Cells(Rows.Count, 1).End(xlUp).Row To 3 Step -1
If Stammdaten.Cells(u, 6) = Eingabeblatt.Range("bereich") Then Exit For
Next u
Me.lbxArtikel.RowSource = Stammdaten.Range("A" & o & ":AC" & u).Address(External:=True)
***** nächster Code ******
Option Explicit
Private Sub cmdInsert_Click()
Dim arrValues() As Variant
Dim intLastRow As Integer, intRow As Integer, intCol As Integer, intRowU As Integer
lstMultiCol.Clear
intLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For intRow = 1 To intLastRow
' If Not IsEmpty(Cells(intRow, 1)) Then
If Cells(intRow, 4).Value = Cells(1, 1) Then
ReDim Preserve arrValues(0 To 2, 0 To intRowU)
arrValues(0, intRowU) = Cells(intRow, 1)
arrValues(1, intRowU) = Cells(intRow, 2)
arrValues(2, intRowU) = Cells(intRow, 3)
intRowU = intRowU + 1
End If
Next intRow
lstMultiCol.Column = arrValues
End Sub
Das Kriterium im zweiten Code ist in Zelle A1. Hier sollen nur Werte in die Listbox gefüllt werden, die mit dem Kriterium übereinstimmen.
Erste Code ist der gleiche, hier wird nur der Anfang und das Ende vom Kriterium berechnet.
Meine Frage ist, welche der beiden codes ist optimaler und ressourcenschonender? Ich weiß auch, dass as variant vermeiden sollte.
Gibts auch einen anderen Code?
Liebe Grüße
Roli