Jetzt ist kommen aber die Daten aus einem anderen Tabellenblatt, mit einem anderen Aufbau, jedoch gibt es die Artikelnummer in der zweiten Spalte der Listbox, welche ähnlich wie die Zeilennummer, eineindeutig ist. Ziel soll es sein, das für jede Artikelnummer, er in der Zieltabelle den richtigen Eintrag sucht, um in einer weiteren Spalte die dazugehörigen Werte abändert.
Wer kann mir dabei helfen?
eingelesen wird die Listbox so:
Private Sub Combobox1_change()
Dim rngCell As Range
Dim strFirstAddress As String
With Worksheets("Datenbank").Range("A:A")
Me.ListBox1.Clear
Set rngCell = .Find(Me.ComboBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With Me.ListBox1
.ColumnCount = 8
.AddItem
.List(.ListCount - 1, 0) = rngCell.Offset
.List(.ListCount - 1, 1) = rngCell.Offset(0, 2).Value
.List(.ListCount - 1, 2) = rngCell.Offset(0, 4).Value
.List(.ListCount - 1, 3) = rngCell.Offset(0, 5).Value
.List(.ListCount - 1, 4) = rngCell.Offset(0, 6).Value
.List(.ListCount - 1, 5) = rngCell.Offset(0, 7).Value
.List(.ListCount - 1, 6) = rngCell.Offset(0, 9).Value
.List(.ListCount - 1, 7) = rngCell.Row 'zeigt die Zeilennummer an in der sich der _
Eintrag aus der datenbank befindet
.ColumnWidths = "0,0cm;5,0cm;8,0cm;5,0cm;5,0cm;5,0cm;2,0cm;0,0cm"
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address strFirstAddress
Else
End If
End With
End Sub
Und das Zurückschreiben via Zeilennummer so:
Private Sub Status_Click()
Dim i, k As Long
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
k = ListBox1.List(i, 7)
Sheets("Datenbank").Cells(k, 3) = "test"
End If
Next
Next
End Sub