AW: Eintrag Listenfeld löschen
13.01.2020 14:43:58
Werner
Hallo,
sehe gerade, dass du die Listbox per RowSource füllst, da funktioniert das so nicht.
Dann mußt du das Füllen der Listbox im Initialize umstellen.
Private Sub CommandButton1_Click()
Dim i As Long
If Me.ListBox1.ListCount > 0 Then
If MsgBox("Die markierten Daten werden aus der Tabelle gelöscht." & vbLf & _
"Wollen Sie fortfahren?", vbYesNo + vbQuestion, "Achtung!") = vbYes Then
For i = UserForm1.ListBox1.ListCount - 1 To 0 Step -1
If Me.ListBox1.Selected(i) Then
With Sheets("Tabelle1") 'Tabelle anpassen
.Cells(i + 3, "A").Delete Shift:=xlUp '+ 1 wenn Ueberschriften in Tabelle
Me.ListBox1.RemoveItem (i)
End With
End If
Next i
End If
End If
End Sub
Private Sub UserForm_Initialize()
Dim dummy As Integer
'Titel der Userform variabel anpassen an gewählte Option
Me.Caption = "Maßnahmen zu " & Worksheets("Speicher").Range("B2").Value
'Liste mit Maßnahmen füllen je nachdem was gewählt wurde
With Worksheets("Maßnahmen")
'Mensch-Verfügbarkeit
If verfügbarkeitabwesenheit = True Then
'dummy prüft ob überhaupt Maßnahmen hinterlegt sind, wenn nicht -> leere Liste anzeigen
dummy = .Cells(Rows.Count, 1).End(xlUp).Row
If dummy >= 3 Then
Me.MaßnahmenListe.List = _
.Range("A3:A" & .Cells(.Cells.Rows.Count, 1).End(xlUp).Row).Value
End If
ElseIf personalengpass = True Then
dummy = .Cells(Rows.Count, 2).End(xlUp).Row
If dummy >= 3 Then
Me.MaßnahmenListe.List = _
.Range("B3:B" & .Cells(.Cells.Rows.Count, 2).End(xlUp).Row).Value
End If
End If
End With
Gruß Werner