Werte aus mehrspaltiger ListBox in Tabelle

Hallo,
mit AktiveCell Daten aus einer einspaltigen ListBox in eine Tabelle übertragen ist kein Problem. Ich habe eine mehrspaltige ListBox (36 Spalten), und möchte aus dieser Box mit ActivCell aus den einzelnen Spalten Daten in die Tabelle übertragen.Immer nur ein Wert aus einer Spalte.Habe schon gegoogle ohne Ende.
Meine Frage ist, geht das überhaupt???
Wenn ja, wie funzt das.(Exel 2000)
Für eventuelle Hilfe bedanke ich mich schon einmal im voraus.
Gruß Skaletti!

Hier das Makro was im Moment im Modul der UserForm steht:
So kann ich aber nur Daten aus der ersten Spalte übertragen.

Private Sub UserForm\_Initialize()
ltbUrlaubswochen.List = Tabelle7.Range("P1:AO20").Value
ltbUrlaubswochen.ListIndex = 0
ltbUrlaubswochen.ColumnWidths = "3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;"
End Sub
Private Sub ltbUrlaubswochen\_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 ActiveCell = ltbUrlaubswochen.Text
 ltbUrlaubswochen.RemoveItem (ltbUrlaubswochen.ListIndex)
End Sub

mit AktiveCell Daten aus einer einspaltigen ListBox in eine
Tabelle übertragen ist kein Problem. Ich habe eine
mehrspaltige ListBox (36 Spalten), und möchte aus dieser Box
mit ActivCell aus den einzelnen Spalten Daten in die Tabelle
übertragen.Immer nur ein Wert aus einer Spalte.Habe schon
gegoogle ohne Ende.

Hallo Skaletti,

wie es mit einer einzigen Codezeile geht weiß ich grad nicht.
May be Rainer könnte mir sagen wie das in VB geht eine ganze Listboxzeile in eine Variable einzulesen mit einem Befehl.
Oder in ein Flexgrid übertragen.

Mein nachfolgender Code klappt, und in die untere Sub eine Schleife von 0-35 einzubauen kriegste sicher auch hin.

Private Sub UserForm\_Initialize()
ListBox1.List = Tabelle1.Range("P1:AO20").Value
ListBox1.ListIndex = 0
ListBox1.ColumnWidths = "3,3cm;2,5cm;3,3cm;2,5cm;3,3cm;2,5cm;3,3cm; usw.
End Sub
'
Private Sub listbox1\_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 ActiveCell.Offset(0, 0) = ListBox1.List(0, 0)
 ActiveCell.Offset(0, 1) = ListBox1.List(0, 1)
 ActiveCell.Offset(0, 2) = ListBox1.List(0, 2)
 'ListBox1.RemoveItem (ListBox1.ListIndex)
End Sub

Gruß
Reinhard

Hallo Reinhard,

May be Rainer könnte mir sagen wie das in VB geht eine ganze
Listboxzeile in eine Variable einzulesen mit einem Befehl.

nein, die Listbox hat in VB nur eine Spalte.
Deine Syntax Listbox1.List(r, c) = txt … läuft in VB nicht.
In VB läuft nur 'ListBox1.List® = txt
Deshalb weiß ich auch nicht, wie da die Daten abgelegt sind, wie man sonst noch damit umgehen kann.

Gruß Rainer

Hallo Rainer,

May be Rainer könnte mir sagen wie das in VB geht eine ganze
Listboxzeile in eine Variable einzulesen mit einem Befehl.

nein, die Listbox hat in VB nur eine Spalte.

upps, diese Antwort kommt überraschend.
In Excel kann man da viele Spalten einrichten, wahrscheinlich minimal diese berühmten 256.
Naja, Schwachsinn, wer hat schon so einen breiten Bildschirm :smile:

Ich war echt darauf vorbereitet daß du mir sagst wie man einen mehrspaltigen Zeileneintrag einer Listbox ausliest und ineiner Variablen speichert.
Und dann das übliche, daß es diesen Befehl in Excel-Vba nicht gibt.
Jetzt staune ich, mal andersrum :smile:

Gruß
Reinhard

Hallo Rainer,Reinhard,

habe hiernoch ein Makro aus einem anderen Forum bekommen,hier wird die ganze markierte Zeile übertragen. Daten werden übertragen, aber dann Laufzeitfehler Zeile:

ActiveCell.Offset(0, lngColOffset) = .List(.ListIndex, intIndex)
„Eigenschaft List konnte nicht aufgerufen werden“

Aber ich möchte nicht die ganze Zeile, sondern nur einen Wert aus einer Spalte übertragen, dann wieder nur einen Wert aus einer anderen Spalte usw… Wird wohl nicht gehen, muss mir wohl eine andere Lösung einfallen lassen.
Gruß Skaletti!

Hier der Code, vielleicht könnt ihr damit was anfangen:

Private Sub ltbUrlaubswochen\_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim intIndex As Integer, lngColOffset As Long

With ltbUrlaubswochen

For intIndex = LBound(Split(.ColumnWidths, ";")) To UBound(Split(.ColumnWidths, ";"))
 If Split(.ColumnWidths, ";")(intIndex) = "70,85 Pt" Then
 ActiveCell.Offset(0, lngColOffset) = .List(.ListIndex, intIndex)
 lngColOffset = lngColOffset + 1
 End If
Next
.RemoveItem (.ListIndex)

End With