Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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
Problem Löschroutine Formular (VBA)
08.08.2016 13:57:36
Lutz
Hallo Zusammen,
ich habe mich mal wieder durch die Weiten des Internets gewühlt und mir mein individuelles Formular zusammengebastelt, welches auch wunder bar funktioniert.
Über verschiedenen Buttons kann ich sowohl speichern als auch löschen.
Allerdings ist löschen immer mit löschen der Zeile verbunden, dann stimmen meine Verweise auf den folgenden Tabellen reitern nicht mehr.
Sinnvoller wäre das er alle Werte der Spalten auf "" setzt (leer), aber den Wert in Spalte A auf die Zeilennummer setzt.
Ich hatte schon .delete durch .clear ersetzt, da bleibt zumindest die Zeile erhalten.
Aber es muss in Spalte A ein Wert drin stehen, da er sonst die anderen Routinen dort beendet.
In der Hoffnung es plausibel erklärt zu haben.
Vielen Dank wie immer für eure Gedanken.
VG Lutz
'Löschen Schaltfläche Ereignisroutine

Private Sub CommandButton2_Click()
Dim lZeile As Long
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Zum Löschen benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = 3 'Start in Zeile 2, Zeile 1 sind ja die Überschriftrn
'Schleife solange etwas in der ersten Spalte in Tabelle 1 drin steht
Do While Trim(CStr(Tabelle3.Cells(lZeile, 1).Value))  ""
'Datensatz ID Spalte mit selektiertem Eintrag der ListBox vergleichen
If ListBox1.Text = Trim(CStr(Tabelle3.Cells(lZeile, 1).Value)) Then
'Eintrag gefunden, die ganze Zeile wird nun gelöscht
Tabelle3.Rows(CStr(lZeile & ":" & lZeile)).Clear             'Delete
'Die ListBox muss nun neu geladen werden!
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do 'Vorzeitiges Ende, da der Datensatz schon gefunden ist
End If
lZeile = lZeile + 1 'Nächste Zeile bearbeiten
Loop
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Problem Löschroutine Formular (VBA)
08.08.2016 14:09:29
baschti007
Geht das nicht so ?
Tabelle3.Rows(CStr(lZeile & ":" & lZeile)).Value = ""
Tabelle3.cells(lZeile,1) = lZeile
Gruß Basti
AW: Problem Löschroutine Formular (VBA)
08.08.2016 14:50:39
Lutz
Hallo Basti,
vielen Dank es funktioniert.
Habe noch die Formel um -2 ergänzt, da meine erste Zeile = Zeile 3 ist.
Viele Grüße und besten Dank.
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Tabelle3.Rows(CStr(lZeile & ":" & lZeile)).Value = ""
Tabelle3.cells(lZeile,1) = lZeile - 2
AW: Problem Löschroutine Formular (VBA)
08.08.2016 14:53:52
Daniel
Hi
das kann man auch etwas einfacher schreiben, wenn man nur eine Zeile hat, kann man die bei Rows auch direkt als Zahl angeben.
Tabelle3.Rows(lZeile).clear
Tabelle3.cells(lZeile,1) = lZeile
man könnte aber auch die erste Spalte generell vom löschen ausnehmen, wenn dort schon ein Wert steht:
Tabelle3.UsedRange.Rows(lZeile).Offset(0, 1).Clear
oder
Tabelle3.Cells(lzeile, 2).Resize(1, 999).Clear
Gruß Daniel
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige