Office: Zeile löschen anhand Kriterium

Helfe beim Thema Zeile löschen anhand Kriterium in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe mal eine Frage, für die mein kleines VBA Fachwissen jedoch nicht ausreicht. Ist es möglich mit VBA (am liebsten so das ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Sapapi, 22. Januar 2019.

  1. Zeile löschen anhand Kriterium


    Hallo zusammen,
    ich habe mal eine Frage, für die mein kleines VBA Fachwissen jedoch nicht ausreicht.

    Ist es möglich mit VBA (am liebsten so das ich das Makro danach als Steuerelement einbinden kann) einen Befehl zu schreiben der mir alle Zeilen löscht in denen in z.B. der Spalte L ein x steht.

    Also es ist immer ein x welches mir praktisch angibt das die Zeile zu löschen ist. Hintergrund ist das ich die anderen Werte erst überprüfen muss ob dem tatsächlich so ist und dann könnte ich sie praktisch mit einem klick löschen.

    Bisher habe ich es entweder händisch gemacht oder per Filter jedoch ist die Datei etwa 20MB groß und brauch entsprechend lange zum Filtern...

    Wäre super wenn vielleicht jemand einen Tipp für mich hätte
    Gruß
    Sascha

    :)
     
  2. Hallo Sasche,

    bei einer 20 MB großen Datei kannst du dich vermutlich gleich von der Idee des zeilenweisen Löschens per VBA verabschieden. Wie ich soeben in einem Nachbarpost erläutert habe, ist das so ziemlich die langsamste Möglichkeit, Zeilen zu löschen.
    Bei so einer großen Datenmenge bist du jedenfalls ein vielfaches schneller, wenn du den Autofilter setzt und danach sämtliche Zeilen auf einmal löschst. Das lässt sich natürlich auch mit VBA lösen. Wenn du hierbei Hilfe brauchst, gib bescheid.
     
    MisterBurns, 24. Januar 2019
    #2
  3. gelöscht.
     
    mrcojanes, 24. Januar 2019
    #3
  4. Zeile löschen anhand Kriterium

    Ich denke ich hätte mich ein wenig besser ausdrücken sollen merke ich gerade, habe wohl den wichtigsten Part vergessen.

    Also ich bin gerade dabei mir eine "Berechnungsdatei" zu basteln.
    Hier wird immer ein Datensatz von ~100 Zeilen und etwa 25 Spalten eingefügt also nichts sehr großes. Lediglich die Ursprungsdatei mit der ich momentan noch arbeite ist so riesig.

    Ich arbeite so praktisch "Parts" ab. Hierfür wollte ich das mit einem Makro machen aus folgenden Gründen.

    Habe versucht das anhand eines Beispiel zu erklären. Bei Fragen gerne melden.

    Vielen Dank schon mal im voraus *Smilie
     
  5. Dein Beispiel ist absolut schlecht erklärt. Das mit 0313 in Spalte B habe ich verstanden. Aber was heißt Aussage "Hier müsste ich prüfen woran das liegt." für mich?

    Schreib mal in Stichworten auf, was wann wo geprüft werden soll und was passieren soll. So nach dem Motto
    - Wenn Spalte D = "x" und Spalte E = leer --> Zeile löschen
    - Wenn Spalte D = "x" und Spalte E leer --> ??? mach was ???
     
    MisterBurns, 24. Januar 2019
    #5
  6. Hey sorry das ich mich so kompliziert ausgedrückt habe *rolleyes.gif*

    Also "Hier muss ich prüfen" hat für das ganze keine Bedeutung. Dann sind die Daten einfach falsch aus der Masterliste und ich muss die Daten in einer anderen Abteilung berichtigen lassen.

    Bsp.1: - Spalte D = "x" und Spalte E = leer --> Zeile löschen (0313 weiter woanders vorhanden das war ja klar)
    Bsp.2: - Spalte D = "x" und Spalte E leer --> Anfrage zur Berichtigung der Masterliste,
    --> dann gibt es 2 Möglichkeiten nachdem die Liste korrigiert wurde:
    1. Spalte E ist eigentlich leer und kann gelöscht werden wie Bsp.1
    2. Der Wert in Spalte E ist korrekt dann ist jedoch das "x" falsch und die Kollegen würden mir den entsprechenden Wert eintragen. Somit wird die Zeile nicht gelöscht.

    Klar wenn das Makro das alles prüfen kann wäre natürlich perfekt. Aber rein theoretisch könnte ich auch selbst schauen ob ich alles mit "x" löschen kann oder erst bei den Kollegen nachbessern lassen muss. Das wichtigste ist im Prinzip das das Makro diesen Befehl für mich ausführen kann:
    - Spalte D = "x" und Spalte E = leer --> Alle Zeilen löschen bei denen dies zutrifft

    Vielen Dank MisterBurns *Smilie
     
  7. Also durch die letzte Erklärung ist es auch nicht besser geworden. Aber zumindest den letzten Satz habe ich verstanden, bittesehr:

    Code:
     
    MisterBurns, 24. Januar 2019
    #7
  8. Zeile löschen anhand Kriterium

    Wow vielen Dank, vorallem auch für deine Mühe mich zu verstehen *grins

    Das hat sofort perfekt geklappt. Vielen Dank dafür *Smilie

    Da hab ich mich wohl etwas zu früh gefreut *frown.gif*

    Beim testen vorhin ging alles jetzt plötzlich passiert nichts mehr, dabei habe ich lediglich die Zeilen etwas anders sortiert aber dementsprechend auch das Makro angepasst. Zumindest dachte ich das... *frown.gif*
    So sieht das Enddesign aus also die Werte beginnen in Spalte 4 darüber sind dann meine Steuerelemente und überschriften.
     
  9. Hallo Sapapi,

    Du musst diese Codezeile noch anpassen:

    Code:
    Damit Du den Code selbst anpassen kannst, falls Du noch etwas ändern willst, hier mal die Erklärung:

    Code:
    sucht in der Spalte "1" (also A) nach dem letzten Eintrag und nimmt dann dessen Zeilennummer

    Zusammengefasst bedeutet damit die o.g. Zeile:

    Für i = Zeilennr. des letzten Eintrags in Spalte A bis (Zeile) 2 in Schritten von -1 (also von unten nach oben)

    Da in Deiner Tabelle der letzte Eintrag in Spalte A in Zeile 3 ist, durchsucht er nur die Zeilen 3 und 2.

    Du müsstest also die 1 für Spalte A in Deinem Makro auf 9 für Spalte I ändern. Und da Deine Daten jetzt erst in Zeile 4 beginnen, solltest Du die For-Schleife dann auch nur bis 4 Step -1 laufen lassen.

    sprich: Code:
    LG Dax
     
    Jadzia_Dax, 25. Januar 2019
    #9
  10. Oh mein Gott, tausend Dank für all eure Mühe.

    Hab verstanden, wie das ganze funktioniert, jetzt konnte ich es perfekt auf diverse Beispiele anwenden und es funktioniert.

    Wünsche noch ein super schönes Wochenende *wink.gif*
     
  11. Hallo nochmal,
    da das Thema noch offen ist und irgendwie auch noch dazu gehört dachte ich muss ich ja nicht extra einen Thread aufmachen.

    Ich bin momentan am Feintuning und dabei ist mir eine Sache noch aufgefallen wo Ihr Profis mir bestimmt weiterhelfen könnt. Meine VBA Kenntnisse beziehen sich momentan bis auf wenige Ausnahmen eher darauf den Makrorecorder zu benutzen und dann alles irgendwie zusammenzufügen so wie ich es benötige.

    Jetzt aber zu meinem Problem.
    Ich habe mir einen Copy-Button gebaut mit dem ich meinen Wunschbereich kopieren möchte. Ich weiß jedoch nicht wie ich das am besten löse.
    Die Spaltenanzahl bleibt immer gleich (Spalte A - Spalte Q),
    die Zeilenanzahl jedoch variiert von Auftrag zu Auftrag.

    Das Problem ist in Zeile 4 - Zeile 350 sind Formeln hinterlegt alla
    =WENN(Werte!K4="";"";Werte!K4) - sprich je nach Auftrag habe ich mal 20 Zeilen die dann befüllt sind, mal sind es 300 der Rest bis 350 ist dann "leer". Dadurch das aber immer die Formel bis 350 in den Zellen steht kann ich hier nicht mit Strg+Shift+Down alles markieren dann nimmt er immer alle 350. Er soll aber praktisch nur diese Zeilen markieren in denen auch wirklich etwas steht. Also diese "" leeren Zellen soll er nicht markieren.
    Ich hoffe dieses mal habe ich es direkt etwas deutlicher ausgedrückt und mir kann vielleicht jemand weiterhelfen.

    Vielen lieben Dank
    - Sascha
     
  12. Ganz einfach - verwirf die Idee, dass du 350 Zeilen vorab ausfüllst. Verwende eine sogenannte "intelligente" Tabelle, die erweitert sich automatisch wenn du zusätzliche Zeilen brauchst und die Formeln werden mitübernommen. Damit kannst du dann wieder ganz einfach mit
    Code:
    die letzte befüllte Zeile ermitteln.
     
    MisterBurns, 29. Januar 2019
    #12
  13. Zeile löschen anhand Kriterium

    Hab mal eine Datei vorbereitet die vielleicht aufzeigt woran ich scheitere.

    Anhand einiger Videos kann ich mir grob vorstellen in welche Richtung es geht aber es umzusetzen ist was anderes. *frown.gif*

    Gruß
    Sascha
     
  14. Ich verstehe, was du meinst. Ob das mittels intelligenter Tabelle lösbar ist (künftig "iT" genannt) kann ich nicht sagen.

    Da du aber sowieso mit VBA arbeitest, kannst du doch auch die Werte von Tabelle2 nach Tabelle1 mit VBA übertragen. Ob du dafür Formeln nimmst oder gleich Festwerte rüberkopierst, bleibt dann dir überlassen. Du könntest es so einrichten, dass bei jeder Änderung von Tabelle2 die entsprechende Zeile in Tabelle1 mitgeändert wird.
    Oder noch besser: den iT-Bereich dynamisch mittels VBA erweitern!
     
    MisterBurns, 29. Januar 2019
    #14
  15. Das Problem beim übernehmen ist immer wieder für mich das es auch leerzellen gibt, es kann vorkommen das es 4 leerzellen sind und dann wieder ein Wert kommt ich benötige also eigentlich immer alles. (Also um es mit VBA zu kopieren).

    Die Idee die iT dynamisch mittels VBA zu erweitern klingt sehr gut. Jedoch stolpere ich auch hier.

    Also ich habe in Tabelle2 den Wert ermittelt wie groß die iT sein müsste. Wie sage ich in Tabelle1 der iT jetzt aber das sie auch so groß werden soll?

    Also in D1 steht praktisch die Größe wie groß die Tabelle sein soll z.B. A4:A(=D1)
    Wahrscheinlich ist schon der komplette Aufbau falsch...
    Sollte ich das dann einmal hinbekommen, würde die Datei beim nächsten mal wenn ich z.B. weniger Zeilen habe dann auch alles was darüber hinausgeht selbstständig wieder entfernen?

    Gruß
    ibims1dummkopf *rolleyes.gif*
     
Thema:

Zeile löschen anhand Kriterium

Die Seite wird geladen...
  1. Zeile löschen anhand Kriterium - Similar Threads - Zeile löschen anhand

  2. Zeilen bei bestimmten Kriterien löschen

    in Microsoft Excel Hilfe
    Zeilen bei bestimmten Kriterien löschen: Moin, ich muss ab heute jeden Monat eine Auswertung über Projekte erstellen, dabei teile ich mir diese Aufgabe mit einem Kollegen, wo er die gerade und ich die ungerade übernehme. Besteht die...
  3. Zeilen verschieben/löschen wenn Bedingung erfüllt wurde

    in Microsoft Excel Hilfe
    Zeilen verschieben/löschen wenn Bedingung erfüllt wurde: Hallo liebe gemeinde ich hab leider das problem, das ich kein gescheites makro hinbekommen in meiner Excel. Ich hätte gerne das wenn in Spalte G der Wert "Picked UP" ausgewählt wird, diese Zeile...
  4. Zeilen übernehmen, jedoch nicht löschen

    in Microsoft Excel Hilfe
    Zeilen übernehmen, jedoch nicht löschen: Hallo zusammen, ich übernehme Auftragsdaten aus Navision in eine Exceltabelle. Die Daten bleiben in Navision jedoch nur so lange bestehen, bis der Auftrag abgeschlossen ist. Aktualisiere ich...
  5. VBA / Leerzeile mit Checkbox löschen

    in Microsoft Excel Hilfe
    VBA / Leerzeile mit Checkbox löschen: Hallo Möchte gerne in einer Excel-Datei Leerzeilen, welche eine aktiviert Checkbox enthalten per VBA löschen. (Checkbox in der zu löschenden Zeile, sowie allfällig andere, deaktivierte Checkboxen...
  6. VBA Code gesucht für Zeilen löschen anhand von Kriterien

    in Microsoft Excel Hilfe
    VBA Code gesucht für Zeilen löschen anhand von Kriterien: Guten Tag Ich habe eine Exceldatei mit mehreren Tabellen. Auf einer Tabelle habe ich eine ziemlich grosse Liste von Einträgen, die mit einem bestimmten Schlüssel versehen sind (pro Tag mehrere...
  7. per VBA Zeile in der Liste löschen

    in Microsoft Excel Hilfe
    per VBA Zeile in der Liste löschen: Hallo Leute, ich brauche eure Hilfe. In einer Liste sollen regelmäßig Einträge vorgenommen werden. Hierzu müssen die Felder Name, Nr. alt, Stück, Bezeichnung, Datum, Kst, Palettennummer,...
  8. Zeilen anhand von Benutzer ID ausblenden/löschen

    in Microsoft Excel Hilfe
    Zeilen anhand von Benutzer ID ausblenden/löschen: Schönen guten Tag zusammen! vorab, ich bin Excel-technisch nicht der aller "fitteste", demnach wende ich mich hiermit an euch. Es geht um folgendes... Ich habe ein Formular(Excel-Datei) in...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden