Ich möchte einen Eintrag eines Kombinationsfeldes (Formularsteuerelement) im Datenblatt "Navigation" auswählen und diesen dann über einen Button aus der Quelldatei (Datenblatt "Daten") löschen, auf die sich die Einträge des Kombinationsfeldes beziehen. Eine Informationsansicht (Datenblatt "Navigation"), welche detailliertere Informationen zu der Auswahl im Kombinationsfeld liefert, soll sich im Zuge des Löschvorgangs automatisch aktualisieren und den in der Liste vorangestellten Eintrag anzeigen. Für den Löschvorgang soll ein Makro programmiert werden und dieses dann mit dem Löschbutton verknüpft werden.
Mit meinem bisherigen Code funktioniert das ganz gut, bis eben auf eine Sache: Ich kann über den Button jeden beliebigen Eintrag löschen. Wenn ich allerdings den allerersten Eintrag auswähle und lösche, verschwindet dieser zwar aus der Quelldatei, allerdings verschwinden gleichzeitig auch alle anderen Listeneinträge aus dem Kombinationsfeld und es ist ab dann keine weitere Auswahl mehr möglich. (Vgl. dazu auch Bild 4) Idealerweise sollte mit dem Löschen des ersten Eintrages nur eben dieser Eintrag verschwinden. Auch die Informationsansicht sollte sich aktualisieren. Viele Dank im Voraus!
Es wäre sehr schön, wenn wir jemand sagen könnte
1.) Warum dieses Problem auftritt und
2.) Wie man das Problem beseitigen kann.
Bild 1, Datenblatt "Navigation":
Bild 2, Datenblatt "Navigation" mit DropDown-Menü des Kombinationsfeldes:
Bild 3, Datenblatt "Daten":
Bild 4, Leeres Kombinationsfeld nach Ausführung des Makros bzw. Löschen des ersten Eintrages:
Mein bisheriger Code:
Sub Datenlöschung()
Dim Counter As Integer
PersonLöschen = MsgBox("Möchten Sie diese Person wirklich löschen?", 32 + 4 + 256, "Löschbestä _
_
tigung")
LängeDerliste = Sheets("Daten").Cells(1000, 5).End(xlUp).Row
For Counter = 2 To LängeDerliste Step 1
If (Counter = 2 And PersonLöschen = 6 And Sheets("Daten").Cells(Counter, 1) = Sheets(" _
Navigation").Range("A5")) Then
Sheets("Daten").Cells(Counter, 2).Delete Shift:=xlUp
Sheets("Daten").Cells(Counter, 3).Delete Shift:=xlUp
Sheets("Daten").Cells(Counter, 4).Delete Shift:=xlUp
Sheets("Daten").Cells(Counter, 5).Delete Shift:=xlUp
ElseIf (Counter > 2 And PersonLöschen = 6 And Sheets("Daten").Cells(Counter, 1) = Sheets(" _
_
Navigation").Range("A5")) Then
Sheets("Daten").Cells(Counter, 2).Delete Shift:=xlUp
Sheets("Daten").Cells(Counter, 3).Delete Shift:=xlUp
Sheets("Daten").Cells(Counter, 4).Delete Shift:=xlUp
Sheets("Daten").Cells(Counter, 5).Delete Shift:=xlUp
Range("A5").Value = Range("A5").Value - 1
End If
Next
End Sub