habe eine ComboBox in einer Userorm. Die Liste wird durch "Initialize" geladen. Am Ende wird ein Zelleintrag ins Value der Combobox übernommen.
Mein Problem ist jetzt das ich ein Button habe, der den Listenindex löscht aber nicht das Value.
So ist es erst nach der Auswahl aus der Liste möglich den Eintrag aus der Liste zu löschen.
Ich möchte aber von Anfang an den Inhalt löschen können, daß heist EXCEL muß wohl erst einmal herausbekommen welchem Listenindex das Value entspricht bevor er ihn aus der Liste löschen kann.
Ich stelle den Code noch mal hinein.
'-----------------------------------------------------------------------------------------------------------------------------------------
Option Explicit
Private Merken As String
Private Sub CommandButton1_Click() ' LÖSCHEN!!!
With ComboBox1
If .Value <> "" And .ListIndex <> -1 Then
'ORIENTIERT SICH NACH DEM INDEX HIER MÜSSTE ER WOHLHERAUSBEKOMMEN WELCHEM LISTENINDEX DAS VALUE ENTSPRICHT
Sheets("LISTEN").Cells(.ListIndex + 3, 1).ClearContents
.RemoveItem (.ListIndex)
.Value = ""
UserForm_Initialize
End If
End With
End Sub
Vielen Dank
für Eure Mühe
Gruß
Felix
'WEITERE CODES NUR FALLS NOTWENDIG ZUR ORIENTIERUNG
'-----------------------------------------------------------------------------------------------------------------------------------------
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CommandButton2_Click
End Sub
Private Sub ComboBox1_Enter() 'mentor
Dim col As New Collection
Dim irow As Integer
Dim Ende As Variant
With Sheets("LISTEN")
Merken = ComboBox1.Value
ComboBox1.Clear
.Range("A3:A10000").Sort Key1:=.Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'A3
irow = 3 'A3
Ende = .Range("A10000").End(xlUp).Row
On Error Resume Next
Do Until irow = Ende + 1
col.Add .Cells(irow, 1), .Cells(irow, 1)
If Err = 0 Then ComboBox1.AddItem .Cells(irow, 1) Else Err.Clear
irow = irow + 1
Loop
ComboBox1.Value = Merken
End With
End Sub
Private Sub CommandButton2_Click() ' mentor nachfrage
Dim MLoLetzte As Long
Dim MRaBereich As Range
With Sheets("LISTEN")
'wenn combobox nicht leer, dann ..
If ComboBox1.Value <> "" Then
If .[a65536] = "" Then MLoLetzte = .[a65536].End(xlUp).Row Else MLoLetzte = 65536
Set MRaBereich = .Range("A3:A" & MLoLetzte).Find(ComboBox1.Value, lookat:=xlWhole)
'wenn kein eintrag vorhanden
If MRaBereich Is Nothing Then
.Cells(MLoLetzte + 3, 1) = ComboBox1.Value 'A3
UserForm_Initialize
End If
End If
End With
End Sub
Private Sub UserForm_Activate()
If Range("M").Value <> "" Then ComboBox1.Value = Range("M").Value
If Range("SL").Value <> "" Then ComboBox2.Value = Range("SL").Value
If Range("STAT").Value <> "" Then ComboBox3.Value = Range("STAT").Value
If Range("ABT").Value <> "" Then ComboBox4.Value = Range("ABT").Value
End Sub
Private Sub UserForm_Initialize()
Dim MLoI As Long
Dim MLoLetzte As Long
'mentorenlistenlänge ermitteln
With Sheets("LISTEN")
If .[a65536] = "" Then MLoLetzte = .[a65536].End(xlUp).Row Else MLoLetzte = 65536
For MLoI = 1 To MLoLetzte
ComboBox1.AddItem .Cells(MLoI, 1)
Next MLoI
End With
ComboBox1_Enter
End Sub