Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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

Listbox-Einträge löschen und Rest nach oben

Listbox-Einträge löschen und Rest nach oben
18.09.2018 15:23:26
Simy
Hallo zusammen,
folgendes Problem würde ich gerne lösen:
Ich habe eine Tabelle mit 60 Zeilen und 10 Spalten. Die Zeilen werden über verschiedene Userformen gefüllt. 7 Spalten (weisse Spalten / s. Anlage) werden über die Userform gefüllt. In den anderen 3 Spalten liegen Formel, die die Eingaben weiter berechnen.
Es gibt eine Korrektur-Userform (siehe Anlage), die eine Listbox enthält, in der die 60 einzelnen Eingaben angezeigt und korrigiert werden können. Die Korrektur erfolgt dann in den einzelnen Text- und Comboboxen. Bis hier hin läuft alles sehr flüssig und gut.
Jetzt möchte ich gerne einen weiteren Command-Button in der Korrektur-Userform hinzufügen mit dem Namen "Ausgewählte Eingabe löschen". Es soll die ausgewählte laufend Nummer lt. Listbox nicht komplett rausgelöscht werden (Zeile löschen), sondern es sollen nur die 7 getätigten Eingaben in den Userformen (siehe oben) gelöscht werden. Die darunter liegenden Eingaben sollen dann nach oben verschoben werden, so dass die 3 Spalten mit den Formeln nicht angesprochen werden. Der Befehl Zeile löschen scheidet daher aus.
Zusammenfassung:
Wie kann ich aus einer Zeile einzelne Zellen löschen und die darunter liegenden Zellen eine Zelle nach oben verschieben?
Ich hoffe, ich konnte es halbwegs vernünftig erklären :-))))
Anbei eine Bespielsdatei. Die komplette Datei kann und darf ich leider nicht hochladen.
Ich hoffe, jemand kann mir weiterhelfen.
Danke und viele Grüße
Simy
https://www.herber.de/bbs/user/124043.xlsx

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox-Einträge löschen und Rest nach oben
18.09.2018 15:50:55
Daniel
HI
irgendie schwierig dir zu helfen.
du sprichst von Formeln und Userformen, aber deine Beispieldatei enthält weder das eine, noch das andere.
von daher hilft diese Beispieldatei nicht viel weiter.
wenn ich mich mal nur auf deine Beschreibung beziehe, dann müsstest du für die beschriebene Aufgabenstellung so vorgehen:
kopiere alle Zeilen unterhalb der Zeile, die gelöscht werden soll inklusive der ersten Leerzeile am Datenende und füge sie in die Zeile, die gelöscht werden soll ein.
beispiel:
deine Tablle geht bis zur Zeile 60, Zeile 61 ist leer
zeile 10 soll gelöscht werden (7 Spalten).
dann musst du die Zellen A11:G61 kopieren und in A10 einfügen.
damit rutschen alle Werte ab Zeile 11 um eine Zeile nach oben.
da du die erste Leerzeile mit kopiert hast, wird am Datenende die letzte alte Zeile gelöscht.
durch das kopieren und einfügen werden die Formeln ab Spalte H nicht verändert.
gruß Daniel
Anzeige
AW: Listbox-Einträge löschen und Rest nach oben
18.09.2018 17:49:48
Simy
Hallo Daniel,
danke für Deine Antwort.
Einfach gesagt, ich benötige einen VBA-Code der bestimmte Zellen (bspw. B1, D1 und E1) in einer Zeile löscht. Nach dem Löschen, müssen die Zellen darunter (B2, D2, E2, usw.) kopiert werden und einen nach oben geschoben werden. Die Spalten mit den Formeln sollen unangetastet bleiben und auch nicht kopiert werden.
Die entsprechende Zeile wird über die Listbox ausgewählt (s. Anhang)
In voller Hoffnung :-)
Gruß
Simy
AW: Listbox-Einträge löschen und Rest nach oben
19.09.2018 11:28:14
Robert
Hallo Simy,
wenn die beigefügte Datei nicht der entspricht, die Du ändern willst, ist das schwierig. Abgesehen davon, dass man das Formular nicht sieht (das Bild davon zeigt mir z. B. nicht wie die Listbox heißt), schreibst Du z.B, dass Du, dass Du z. B. die Zelle B1 löschen willst. In Deiner Datei beginnen die Daten aber erst in der 5. Zeile.
Ausgehend von Deiner eingestellten Datei und von folgenden Annahmen:
1. Die lfd. Nr.in der Listbox entspricht der Nr. des Datensatzes. Bei Auswahl von 1 in der Listbox, willst Du also die Zelle B5 (weil erste Zeile im Datenbereich) löschen.
2. Das Lisbox-Element in DeinemFormular heißt Listbox1
3. Der einzufügende Button heißt CommandButton1
Bei Auswahl von z. B. 2 in der Listbox soll die Zelle B6 gelöscht werden (weil 2. Eintrag im Datenbereich). Folgender Code hinter dem Button kopiert dann den Bereich B7 bis zum Ende der Daten in der Spalte B (+ 1 Zeile) und fügt diesen Bereich eine Zelle höher (also ab B6) wieder ein. Somit ist die Zelle B6 gelöscht und der Rest eine Zeile höher wieder eingefügt, ohne die Formeln anzutasten.
Private Sub CommandButton1_Click()
Dim lVon As Long, lBis As Long
lVon = 5 + Me.ListBox1
With Sheets("Eingabemaske")
lBis = .Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("B" & lVon & ":B" & lBis).Copy .Range("B" & lVon - 1)
End With
End Sub

Gruß
Robert
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige