Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen löschen nach Bedingung

Betrifft: Zeilen löschen nach Bedingung von: Flo
Geschrieben am: 31.10.2014 18:17:01

Guten Abend zusammen,

nachdem mir nun die Suchbegriffe ausgehen und mir hier zuletzt so schnell und kompetent geholfen wurde, möchte ich euch nochmals um eure Hilfe bei einem Problem bitten.

Ich habe ein fast fertiges Makro, welches aus vielen Mappen und Tabellenblättern eine Übersicht in dieser Art erstellt:

Artikel Bestellnummer Bestellmenge Eilige_Menge
Artikel1 EB14001 200 500
Artikel1 EB14002 100 500
Artikel1 EB14003 400 500
Artikel1 EB14004 200 500
Artikel2 EB14001 300 400
Artikel2 EB14002 100 400
Artikel2 EB14003 200 400
Artikel2 EB14004 100 400
Artikel2 EB14005 300 400

Die Aufgabenstellung wäre nun, dass alle überflüssigen Zeilen gelöscht werden. Bei Artikel1 wäre das die 4te Position, da sie Summe der ersten drei Positionen bereits die eilige Menge erreicht, bzw. übersteigt. Bei Artikel2 reichen bereits die beiden Ersten Zeilen aus, so dass die letzten drei Zeilen gelöscht werden können.

Da ich bereits ein sehr umfangreiches Makro erstellt habe, würde ich gerne diesen letzten Schritt ebenfalls dort integrieren. Mir fehlt nur die zündende Idee, wie ich an dieses Problem herangehe oder nach welchen Begriffen ich im Netz suchen könnte, um die Lösung eines ähnlichen Problems entsprechend umbauen zu können.

Da ich mich seit einigen Monaten intensiv mit Makros beschäftige, gerne knobel und schon viel gebastelt habe, wäre ich auch für kleine Tipps oder Hinweise dankbar, da die ja schon den Funken springen lassen könnten.

Auf jeden Fall schon mal vielen Dank an alle, die sich meinen Kopf zerbrechen.

  

Betrifft: "eilige Menge erreicht" versteh nur Bahnhof oT. von: Tino
Geschrieben am: 31.10.2014 18:27:00




  

Betrifft: AW: Zeilen löschen nach Bedingung von: Daniel
Geschrieben am: 31.10.2014 18:39:17

Hi
ohne Makro würde ich das so lösen:
1. falls nicht schon gehschehen, Tabelle Nach Artikel- und Bestellnummer sortieren
2. in Zelle E2 die Formel:

=C2+Wenn(A2=A1;E1;0)

3. in Zelle F2 die Formel:
=Wenn(E2>D2;0;Zeile())

4. beide Formelen bis ans Ende runterkopieren
5. in die Zelle F1 die 0 schreiben
6. auf die ganze Tabelle die Funktion: DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN anwenden mit der Spalte F als Kriteriumsspalte und der Option "keine Überschrift"
7. Spalte E und F wieder löschen

mit Makro würde ich es auf genau dieselbe Weise lösen.
Da das Makro nur die Formelen und die 0 eintragen muss und dann das Duplikate-entfernen auslöst und somit nicht besonders kompliziert oder logisch anspruchsvoll ist und der grösste Teil mit dem Recorder aufgezeichnet werden kann, verzichte ich darauf, hier den Code zu posten.

Gruß Daniel


  

Betrifft: AW: Zeilen löschen nach Bedingung von: Flo
Geschrieben am: 01.11.2014 10:41:16

Hallo Daniel,

vielen Dank für deine schnelle Antwort. Hab mich wohl so intensiv auf eine Schleifenkonstruktion versteift, dass ich mich gedanklich selbst in einer befunden habe. Die Lösung mit Hilfsspalten mit einfachsten Wenn-Funktionen ist genial. Und da ich bereits einen SUB habe, der im Vorfeld in verschieden Tabellen Zeilen mit Nullen löscht, ist das Ganze in Sekunden integriert. Viele, vielen Dank. Einfach nur genial. :)


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen löschen nach Bedingung"