AW: Listbox auf 10 Spalten begrenzt?
05.11.2010 12:59:36
abu
Hallo Rudi,
mmmh wenn ich das mal wuesste, soweit bin ich noch nicht.
Problem ist alle Daten einen Datensatzes muss in einer Zeile stehen. Ich bin erst soweit einen neuen Datensatz einzulesen. Die Daten kommen aus einer anderen Listbox (weniger als 10 Spalten). Dann kommts in die Listbox mit den 14 Spalten da ich die Daten der bestellten Ware mit den Daten der falschen Ware buendeln will.
Anschliessend wuerde ich mit folendem Code die Daten in die Tabelle schreiben:
Private Sub CommandButton1_Click()
Dim lngRow&, lngCol&, nCount&
Dim ArrayData()
With ListBox1
Redim ArrayData(1 To .ListCount * .ColumnCount, 1 To 1)
For lngRow = 0 To .ListCount - 1
For lngCol = 0 To .ColumnCount - 1
nCount = nCount + 1
ArrayData(nCount, 1) = .List(lngRow, lngCol)
Next lngCol
Next lngRow
End With
Range("A1").Resize(, UBound(ArrayData)) = Application.Transpose(ArrayData)
End Sub
und mit dem Code aus der Tabelle holen:
Private Sub CommandButton2_Click()
Dim ArrayData, NewArray()
Dim nCount&, nCol&, nRow&
With Tabelle1 'Tabelle angeben
ArrayData = .Range("A1", .Cells(1, .Columns.Count).End(xlToLeft))
End With
With ListBox1
.ColumnCount = 4 'Spalten einstellen oder fest vergeben
Redim Preserve NewArray(1 To .ColumnCount, 1 To Ubound(ArrayData, 2))
For nCount = 1 To Ubound(ArrayData, 2)
If .ColumnCount = nCol Then nCol = 0
nCol = nCol + 1
If nCol = 1 Then nRow = nRow + 1
NewArray(nCol, nRow) = ArrayData(1, nCount)
Next
Redim Preserve NewArray(1 To .ColumnCount, 1 To nRow)
.List = Application.Transpose(NewArray)
End With
End Sub
Beide Codes hab ich von Tino und noch nicht in meinen integriert, wie gesagt soweit bin ich noch nicht.
Also noch mal die Frage, gehts das was ich so vor hab oder muss ich es auf 2 Listboxen verteilen?
Gruss
Abu