Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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
VBA ListBox Zeilen in Tabelle löschen
28.11.2020 20:12:54
Chris
Guten Abend zusammen,
ich habe ein Problem mit dem Löschen von Inhalten aus meiner Tabelle anhand der Auswahl in der ListBox.
Ich lese die Daten der ListBox aus einem Tabellenblatt ein. Multiselect ist aktiviert. Ich würde gerne für jede ausgewählte Zeile aus der ListBox, die entsprechende Zeile aus der Tabelle löschen.
Die Tabelle hat den ersten Eintrag in F6 und geht bis in die Spalte K.
Mein bisheriger Code löscht immer nur einen Eintrag, obwohl ich mehrere Zeilen in der ListBox auswähle.
Ich wäre euch sehr dankbar, wenn ihr mir weiterhelfen könntet.
Mein Code:
Private Sub CommandButton_Positionenloeschen_Click()
Dim i As Long
For i = 0 To ListBox_Positionen.ListCount - 1   '(-1 wegen Row.Source)
If ListBox_Positionen.Selected(i) = True Then
Rows(ListBox_Positionen.ListIndex + 6).Columns("F:K").Delete Shift:=xlUp
End If
Next
End Sub
Vielen Dank und beste Grüße
Chris

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA ListBox Zeilen in Tabelle löschen
28.11.2020 20:14:53
Hajo_Zi
Hallo Chris,
Deine Schleife sollte vom letzten zum erstenm laufen.
Zu Deiner Datei kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.Ich baue keine Datei nach.
Sollte die Datei verlinkt werden?
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
ändern.
Bilder lade ich mir nicht runter, da Excel damit nichts anfangen kann.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.
http://www.excel-ist-sexy.de/bilder-statt-datei/
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: VBA ListBox Zeilen in Tabelle löschen
28.11.2020 20:17:03
ralf_b
wie wird die Listbox gefüllt?
mittels rowsource?
AW: VBA ListBox Zeilen in Tabelle löschen
29.11.2020 12:48:26
Chris
Hallo zusammen,
vielen Dank für eure Nachrichten.
Beispieldatei: https://www.herber.de/bbs/user/141924.xlsm
Die Listbox wird mittels rowsource gefüllt.
Wie ich bereits erwähnt habe, würde ich gerne für jede ausgewählte Zeile in der ListBox, die entsprechende Zeile aus der Tabelle löschen. Wenn ich mehrere Zeilen in der ListBox auswähle, sollen auch alle entsprechenden Zeilen in der Tabelle gelöscht werden.
Vielen Dank für eure Hilfe.
Grüße
Chris
AW: VBA ListBox Zeilen in Tabelle löschen
29.11.2020 18:11:25
ralf_b
wenn man eine Zeile löscht dann gehen die markierungen verloren.
hier mal ein Beispiel wie es hoffentlich gut funktioniert.
das unload vom Anfang hab ich ans Ende gestellt.
Die Markierungsindizees werden in ein Array eingelesen und dieses dann rückwärts abgearbeitet.
Anschließend wird die Rowsource angepasst.
Private Sub CommandButton_Positionenloeschen_Click()
'Unload Me
Dim i As Long, x As Integer
Dim fund As Range
Dim ArIndx() As Variant
For i = 0 To ListBox_Positionen.ListCount - 1 '(-1 wegen Row.Source)
If ListBox_Positionen.Selected(i) = True Then
ReDim Preserve ArIndx(0 To x)
ArIndx(x) = i
x = x + 1
End If
Next
For i = UBound(ArIndx) To LBound(ArIndx) Step -1
Rows(5 + ArIndx(i)).Columns("F:K").Delete Shift:=xlUp
Next
With ListBox_Positionen
.RowSource = Range(.RowSource).Resize(Range(.RowSource).Rows.Count - (UBound(ArIndx) + 1)). _
Address(0, 0, xlA1, True)
End With
Erase ArIndx
Unload Me
End Sub

Anzeige
AW: VBA ListBox Zeilen in Tabelle löschen
29.11.2020 18:42:04
Chris
Guten Abend Ralf,
vielen Dank für deinen Code.
Ich habe den folgenden Teil weglassen müssen, ansonsten hat Excel mir einen Fehler ausgegeben.
With ListBox_Positionen
.RowSource = Range(.RowSource).Resize(Range(.RowSource).Rows.Count - (UBound(ArIndx) + 1)). _
_
Address(0, 0, xlA1, True)
End With

Was macht dieser Teil?
Danke für die Hilfe. Der obere Teil des Codes macht genau das was ich brauche!!!
Einen schönen Sonntag noch!
Gruß
Chris
AW: VBA ListBox Zeilen in Tabelle löschen
29.11.2020 18:58:11
ralf_b
der code reduziert die Rowsource auf die veränderte Größe nach dem Löschen. Möglicherweise ist ja noch der Zeilenumbruch durch die Forensoftware,drin. der code sollte auf einer Zeile stehen ohne Unterstriche.
Anzeige

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige