AW: Will er wohl nicht. o.w.T.
29.03.2018 16:47:07
Werner
Hallo Frank,
du hast ja jetzt wohl deine favorisierte Lösung aber der Vollständigkeit halber jetzt noch der Code zum Einlesen in die Listbox per Schleife (mit Zeilennummer der Tabelle) und dem Zurückschreiben der Daten unter Verwendung der vorher eingelesenen Zeilennummer.
Private Sub CommandButton1_Click()
Dim i As Long
With Sheets("Prognose")
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
'Schreiben der Daten, für die richtige Zeile wird der Eintrag
'aus Spalte 5 der ListBox verwendet
.Range("A" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 0)
.Range("B" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 1)
.Range("C" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 2)
.Range("D" & Me.ListBox1.List(i, 4)) = ListBox1.List(i, 3)
End If
Next i
End With
End Sub
Private Sub UserForm_Initialize()
Dim i As Long, loLetzte As Long
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 4).End(xlUp).Row
End With
With Me.ListBox1
'ListBox erweitert auf 5 Spalten
.ColumnCount = 5
'Spalte 5 wird nicht angezeigt, da Breite auf 0 gesetzt
.ColumnWidths = "1,5cm;5cm;5cm;1,5cm;0cm"
For i = 1 To loLetzte
If Worksheets("Tabelle1").Cells(i, 4).Value = 0 _
Or Worksheets("Tabelle1").Cells(i, 4) = Year(Date) Then
.AddItem Worksheets("Tabelle1").Cells(i, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Worksheets("Tabelle1").Cells(i, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Worksheets("Tabelle1").Cells(i, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Worksheets("Tabelle1").Cells(i, 4)
'einlesen der Zeilennummer in die ListBox in Spalte 5
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = i
End If
Next i
End With
End Sub
Gruß Werner