Office: VBA ListBox Zeilen entsprechend in Tabelle löschen

Helfe beim Thema VBA ListBox Zeilen entsprechend in Tabelle löschen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo 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... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von CG13, 27. November 2020.

  1. VBA ListBox Zeilen entsprechend in Tabelle löschen


    Hallo 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. Die Listbox wird mittels rowsource gefüllt.

    Ich wäre euch sehr dankbar, wenn ihr mir weiterhelfen könntet.

    Mein Code:

    Code:
    Angehängt ist noch eine Beispieldatei.

    Vielen Dank und beste Grüße
    Chris

    :)
     
  2. Hallo Chris,

    Deine Schleife sollte vom letzten zum ersten Eintrag laufen
    Rows(ListBox_Positionen.ListIndex + 6).Delete Shift:=xlUp

    Bitte berücksichtige das Themen die Erledigt sind als Erledigt markiert werden können. Also mache es unten links mit Klick auf den Schalter "als erledigt setzen", falls Problem gelöst.
    Der Zustand des Beitrages wird dann in der Übersicht angezeigt und man braucht sich diese Beiträge nicht mehr ansehen.





    Meine Homepage Homeseite - Hajo's Excelseiten
     
  3. Hallo Hajo,

    danke für deine Antwort.
    Leider weiß ich nicht genau wie du das meinst.
    Wie kann ich die Schleife vom letzten bis zum ersten Eintrag laufen lassen?

    Danke und Gruß
    Chris
     
  4. VBA ListBox Zeilen entsprechend in Tabelle löschen

    Du hast doch schon einen Code erstellt Wo ist das Problem?
    For i = ListBox_Positionen.ListCount - 1 To 0
     
  5. Hallo Chris,

    so:

    Code:
    Zeilen musst du immer von unten nach oben löschen.
     
  6. Danke für eure Antworten.

    Es wird immer noch nur eine Zeile gelöscht, obwohl ich mehrere auswähle.
    Leider verstehe ich nicht woran das liegt.

    Code:
     
  7. sehe ich es richtig, Du möchtest meinen Beitrag nicht komplett lesen.
    Da ich nicht für den Papierkorb schreibe bin ich raus.

    Rows(I+6).Delete
     
  8. VBA ListBox Zeilen entsprechend in Tabelle löschen

    Hallo Hajo,

    habe jeden Beitrag gelesen und auch berücksichtigt.
    Leider funktioniert es auch nicht mit deiner Methode.
    Hast du noch einen Tipp?

    Danke und Gruß
    Chris
     
  9. Hallo Chris,

    du löschst ja auch nur eine Zeile. Teste mal:

    Private Sub CommandButton_Positionenloeschen_Click()

    Dim i As Long

    For i = ListBox_Positionen.ListCount - 1 To 0 Step -1

    If ListBox_Positionen.Selected(i) Then

    Rows(i + 6).Columns("F:K").Delete Shift:=xlUp

    End If
    Next
    End Sub
     
  10. Hallo Chris,

    wenn du mal genau nachschaust, wirst du vielleicht bemerkt haben, daß nach dem Löschen der 1. Zeile in der For-Schleife die Selektion der Listeneinträge gelöscht wird. So kannst du natürlich nur einen Eintrag löschen. Hier müßtest du an deinem Programmablauf nochmal etwa nacharbeiten.

    Gruß Ulrich
     
  11. Hallo zusammen,

    danke für eure Hilfe. @knobbi38 da hast du vollkommen recht. Habe folgenden Code von einem User (ralf_b) erhalten, der genau das berücksichtigt.

    Code:
    Damit funktioniert das Löschen von mehreren Einträgen.

    Grüße
    Chris
     
Thema:

VBA ListBox Zeilen entsprechend in Tabelle löschen

Die Seite wird geladen...
  1. VBA ListBox Zeilen entsprechend in Tabelle löschen - Similar Threads - VBA ListBox Zeilen

  2. vba listbox filter beim füllen

    in Microsoft Excel Hilfe
    vba listbox filter beim füllen: Hallo zusammen, leider reichen meine bscheidenen Kenntnis nicht aus. Vielleicht habt ihr eine Lösung für mich. Möchte eine Listbox füllen (ColumnCount = 6) mit Daten einer Tabelle, deren Wert in...
  3. VBA In Listbox bestimmten Eintrag ändern

    in Microsoft Excel Hilfe
    VBA In Listbox bestimmten Eintrag ändern: Guten Tag, ich möchte wenn ich auf den Button "Soldaten anlegen/ändern" Klicke in der zweiten Ansicht "Soldaten Suchen", wenn ich z.B. nach dem Namen Müller Suche, die Daten ändern können. Soweit...
  4. Mehrfachauswahl ohne VBA

    in Microsoft Excel Hilfe
    Mehrfachauswahl ohne VBA: Hallo an alle, ich habe einen Bereich mit Namen und Auswahlkennzeichen: Nüsse - wahr Schokolade - falsch Gemüse - wahr Alkohol - falsch Ich möchte in einer Listbox die Namen als Multiselect...
  5. VBA Werte aus Listbox/Textbox in Zelle schreiben

    in Microsoft Excel Hilfe
    VBA Werte aus Listbox/Textbox in Zelle schreiben: Hallo zusammen, ich habe eine Userform mit zwei Listboxen und einer Textbox. Ich würde gerne beim drücken des Buttons in eine Spalte den selektierten Eintrag der linken Listbox mit entweder...
  6. Ergänzung eines VBA-Codes

    in Microsoft Excel Hilfe
    Ergänzung eines VBA-Codes: Hallo zusammen, ich habe mich der Tabelle aus diesem Thread bedient: http://www.office-hilfe.com/support/showthread.php/1629-Auswahl-mehrerer-Eintr%C3%A4ge-in-einer-Drop-Down-Liste Die...
  7. Excel VBA listbox einer Userform zu textbox einer weiteren Userform daten übernehmen

    in Microsoft Excel Hilfe
    Excel VBA listbox einer Userform zu textbox einer weiteren Userform daten übernehmen: Hallo, ich bin ziemlich neu im Thema VBA und stoß gerade auf ein Problem in meinem Projekt.vll kann mir jemand helfen hab bisher keine Lösung gefunden. also ich habe ein Tabellenblatt mit einer...
  8. Listview und Listbox = Nicht genug Speicher

    in Microsoft Excel Hilfe
    Listview und Listbox = Nicht genug Speicher: Hallo Ich habe ein Formular mit einer Listview + vier Listboxen. Wenn ich das Formular öffne kriege ich die Meldung dass nicht genug Speicher für eine vollständige Anzeige zur Verfügung steht....