Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1464to1468
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kombinationsfeld leer nach Löschen eines Eintrages

Kombinationsfeld leer nach Löschen eines Eintrages
03.01.2016 16:45:24
herby
Hallo zusammen!
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":
Userbild
Bild 2, Datenblatt "Navigation" mit DropDown-Menü des Kombinationsfeldes:
Userbild
Bild 3, Datenblatt "Daten":
Userbild
Bild 4, Leeres Kombinationsfeld nach Ausführung des Makros bzw. Löschen des ersten Eintrages:
Userbild
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kombinationsfeld leer nach Löschen eines Eintrages
03.01.2016 18:43:05
Beverly
Hi,
vielleicht soltest du nach dem Löschen der Einträge den Bereich neu zuweisen?


AW: Kombinationsfeld leer nach Löschen eines Eintrages
03.01.2016 22:09:20
herby
Hallo,
vielen Dank für deine Antwort. Allerdings sollte es nicht so sein, dass man nach dem Löschen manuell noch neue Zuweisungen durchführen muss.
Im Prinzip funktioniert es ja auch, dass ich die Listeneinträge löschen kann. Wie gesagt, nur das Löschen des jeweils ersten Eintrages ist nicht möglich, ohne dass die Einträge im Kombinationsfeld vollständig verschwinden.
Viele Grüße

AW: Kombinationsfeld leer nach Löschen eines Eintrages
04.01.2016 08:20:50
Beverly
Hi,
wer sagt denn, dass du die Zuweisung von Hand machen sollst? Da du bereits ein Makro zum Löschen der Einträge aus dem Tabellenblatt hast, lässt sich das Zuweisen doch dort einbauen.


Anzeige
AW: Kombinationsfeld leer nach Löschen eines Eintrages
05.01.2016 14:14:48
herby
Hallo
nochmal vielen Dank für deine Antwort. Sorry, ich bin davon ausgegangen, die Zuweisung müsse manuell durchgeführt werden.
Wie kann ich die Zuweisung in den Code einbauen bzw. wie lautet dazu der entsprechende Befehl?
Viele Grüße und nochmals danke im Voraus.

Kombinationsfeld Datenquelle neu zuweisen
05.01.2016 20:02:38
Beverly
Hi,
nach diesem Prinzip:
ComboBox1.RowSource = "Tabelle2!A1:B20"   '

Tabellenname kannst du weglassen, falls die Daten im aktiven Tabellenblatt liegen.


AW: Kombinationsfeld Datenquelle neu zuweisen
06.01.2016 19:15:15
herby
Hallo!
Vielen Dank für den Hinweis.
Allerdings weiß ich nicht, wie ich diesen Befehl in meinen Code integrieren kann, da ich den Namen des Kombinationsfeldes nicht kenne. Wie kann ich diesen ermitteln, damit ich über deinen Befehl auf das Kombinationsfeld zugreifen kann? Übernehme ich diesen Code und passe nur den Tabellenbereich an, erhalte ich die Fehlermeldung "Objekt erforderlich".
Wie kann ich zudem das Kombinationsfeld dynamisch anpassen? Ich denke mal, dass über den Befehl "Tabelle2!A1:B20" das Kombinationsfeld nur statisch erweitert werden kann, oder sehe ich das falsch?
Viele Grüße und nochmals vielen Dank!

Anzeige
AW: Kombinationsfeld Datenquelle neu zuweisen
06.01.2016 20:32:50
Beverly
Hi,
sorry, mein Codebeispiel war nicht korrekt, da du ein Formaular-Kombinationsfeld verwendest. Der prinzipielle Code müsste so heißen:
ActiveSheet.Shapes("Drop Down 2").OLEFormat.Object.ListFillRange = "Tabelle2!$A$1:$A$5"

Wieso kennst du den Namen des Kombinationsfeldes nicht? Und was meinst du mit "kann nur statisch erweitert werden"?


AW: Kombinationsfeld Datenquelle neu zuweisen
07.01.2016 14:21:10
herby
Hallo,
nochmals vielen Dank! Verwende ich deinen Befehl, erhalte ich an der entsprechenden Stelle die Fehlermeldung:
Userbild
Mein Verdacht ist, dass Excel über diesen Befehl nicht mitgeteilt wird, dass sich die relevanten Bereiche auf unterschiedlichen Datenblättern befinden. Denn das DropDown-Menü befindet sich auf dem Datenblatt "Navigation" und die Tabelleneinträge auf dem Datenblatt "Daten" im Bereich B2 bis B9.
Wie lautet dann der korrekt angepasste Befehl bzw. wie stelle ich in dem Befehl den Zusammenhang zwischen dem Datenblatt "Daten" und dem Datenblatt "Navigation" her?
Woher weiß ich zudem, dass ich das DropDown-Menü über "Drop Down 2" anspreche bzw. wie kann ich den relevanten Namen ermitteln?
Zu deinen Fragen:
Ich kenne den Namen des Kombinationsfeldes nicht, da es sich bei der Aufgabe um eine Übungsaufgabe handelt und das Kombinationsfeld Formularsteuerelement vom Aufgabensteller vorbereitet wurde.
Darüber hinaus könnte man ja auch neue Tabelleneinträge vornehmen, sodass sich der für das DropDown-Menü relevante Tabellenbereich entsprechend erweitert. Gebe ich einen expliziten Tabellenbereich an, bleibt dieser ja unabhängig von entsprechenden Erweiterungen immer gleich. Unter "Rechte Maustaste auf das DropDown-Menü" --- "Steuerelement formatieren" --- "Steuerung" --- "Eingabebereich" steht bei mir zudem auch kein konkreter Tabellenbereich sondern ein Wort. Ich vermute, dass dies auch damit zusammenhängt.

Anzeige
AW: Kombinationsfeld Datenquelle neu zuweisen
07.01.2016 16:00:14
Beverly
Hi,
durch die Verwendung von .ListFillRange = "Tabelle2!$A$1:$A$5" wird der Bezug zum betreffenden Tabellenblatt hergestellt - wenn es bei dir "Daten" heißt, dann musst du statt Tabelle2 halt Daten schreiben.
Wenn bei dir ein "Wort" unter Eingabebereich anstelle eines Zellbereichs (wie o.a.) steht, dann verwendest du einen definierten Namen. Wie ist der Name definiert - also was steht unter "Bezieht sich auf"?
Was verstehst du unter "und das Kombinationsfeld Formularsteuerelement vom Aufgabensteller vorbereitet wurde"? Du kannst doch das Kombinationsfeld markieren und dann im Namensfeld den Namen ablesen.
Vielleicht ist es das beste, wenn du mal eine Beispielmappe hochlädst mit einer genauen Beschreibung, was wann wie ablaufen soll.


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige