HERBERS Excel-Forum - das Archiv

Thema: Aus Listbox Spalte als Wert zurück bekommen

Aus Listbox Spalte als Wert zurück bekommen
Rainer
Hallo,

ich habe mit folgendem Code meine Listbox generiert:

Private Sub UserForm_Initialize()

Dim iCol As Integer, iColL As Integer, iLst As Integer
Dim sTxt As String
iColL = ActiveSheet.Cells(1, 9) 'gibt Wert der letzten Spalte zurück
For iCol = 19 To iColL 'Beginn ab Spalte 19
If Cells(13, iCol).EntireColumn.Hidden = False Then
If IsEmpty(Cells(13, iCol)) Then
lstProdukte.AddItem Cells(2, iCol).Value
Else
lstProdukte.AddItem Cells(13, iCol).Value
End If
End If
iCol = iCol + 1
Next iCol
End Sub

Private Sub lstProdukte_Click()
'http://www.herber.de/forum/archiv/1448to1452/t1450466.htm
Dim iLst As Integer
'Ausgewähltes Produkt als Empfehlung übernehmen
For iLst = 0 To lstProdukte.ListCount - 1
If lstProdukte.Selected(iLst) Then
Tabelle1.Cells(1, 16) = (Wert Auswahl -1)
End If
Next iLst
End Sub


Nun hätte ich gerne, dass ich bei der Auswahl des Produktes die Spaltenziffer (Wert Auswahl) bekomme, aus welcher der Wert stammt um damit weiter zu arbeiten.
Vermutlich muss ich dazu die ListBox zweispaltig machen?
Bin aber, auch damit noch nicht weiter gekommen.

Gruß Rainer
AW: Aus Listbox Spalte als Wert zurück bekommen
daniel
Hi
richtig.
du musst die Listbox 2-Spaltig machen.
hierzu trägst du erstmal die Spaltenanzahl bei Columncount in der Eigentschaftsliste ein.
beim Befüllen mit .AddItem kommt der so hinzugefügte wert in die erste Spalte (spaltenindex 0)
um jetzt in die zweite Spalte deinen anderen Wert (Spaltennummer) zu schreiben, programmierst du:

lstProdukte.AddItem Cells(2, iCol).Value

lstProdukte.List(lstProdukte.ListCount -1, 1) = iCol


in der Eigenschaft ColumnWidth legst du die Spaltenbreite der einzelnen Spalten fest, über Spaltenbreite 0 kannst du eine Spalte auch ausblenden.

an den Wert der zweiten Spalte kommst du dann mit
IstProdukte.List(i, 1)

(der Spaltenindex beginnt wie der Zeilenindex mit 0)

gruß Daniel
AW: Aus Listbox Spalte als Wert zurück bekommen
Rainer
Hallo Daniel,

super, hat geklappt. Vielen Dank für Deine Mithilfe.

Gruß Rainer