Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

noch 'ne Schleife mit 2 Bedingungen

noch 'ne Schleife mit 2 Bedingungen
26.04.2021 14:58:45
MB12
Hallo liebe Helfer*innen,
ich verwalte /aktualisiere eine täglich wachsende Datei (aktuell ca 7000 DS) über Vergabe von Lieferzeiten. Im beigefügten Beispiel habe ich 2 Spalten C und D mit Dropdowns und Spalte A mit Datum.
Wenn in Spalte C "LZ" ausgewählt wurde und in Spalte D "offen1" oder "offen2" sowie das aktuelle Datum (in A1) mehr als 90 Tage vor heute liegt, soll der Eintrag "LZ" im jeweiligen DS geändert werden auf "erledigt" (auch im Dropdown enthalten).
Ich vermute mal, dass eine Schleife das Makro langsam macht. Wäre hier eine "Case"-Lösung besser?
Vielen Dank im Voraus für ein kleines Makro.…
Beispieldatei:
https://www.herber.de/bbs/user/145789.xlsx
LG, Margarete

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 15:29:30
Daniel
Hi
so richtig klar ist mir noch nicht was du willst.
SELECT CASE ist keine Alternative zu einer Schleife (For-Next), sondern eine Alterternative zu IF-THEN-ELSE.
und es macht das Makro nicht wirklich schneller, sonden vereinfacht gegebenenfalls die Programmierung.
Auch Schleifen müssen nicht zwingen langsam sein, sie können auch sehr schnell sein.
Was langsam ist, ist die Bearbeitung von einzelnen Zellen.
in dem Fall könntest auch folgendes tun:
ab E4 bis zur letzten befüllten Zeile folgende Formel eintragen:

=WENN(UND(C4="LZ";ODER(D4="offen1";D4="offen2");(HEUTE()-A4)>90);"erledigt";C4)
und dann diese Formeln kopieren und in C4 als Wert eintragen.
das wäre auch als Makro sehr schnell, wenn du das für den ganzen Zeilenbereich in einem Schritt machst.
Gruß Daniel
Anzeige
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 16:42:42
MB12
Hallo Daniel,
ja, klar, mein Fehler. Hab vielen Dank für deinen Vorschlag.
Gruß, Margarete
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 15:51:06
Herbert_Grom
Hallo MB,
wofür ist das Sheet "Listen" in deiner Arbeitsmappe?
Servus
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 15:53:32
Herbert_Grom
Hallo MB,
sorry, ich habs gesehen! Manchmal ist man nur noch blind. Dafür habe ich dir jetzt einen Vorschlag. Schau ihn dir mal an:
https://www.herber.de/bbs/user/145790.xlsm
Servus
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 16:51:54
MB12
Hallo Herbert,
danke für deinen Vorschlag. Zuerst eine Frage: Warum zu Beginn UND am Ende
Application.EnableEvents = False ?
Ich hätte es gleich reinschreiben sollen: Lieber ist mir, wenn das Makro "von Hand" gestartet würde. Dann baue ich es in die weiteren Makros ein, die ich 1x pro Monat laufen lasse.
Deine Lösung aktuell:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Application.EnableEvents = False
If Target.Value = "LZ" And _
Cells(Target.Row, 4) = "offen1" Or _
Cells(Target.Row, 4) = "offen2" And _
CDate(Cells(1, 1)) 
Könntest du das Makro anpassen?
Herzlichen Dank, Margarete
Anzeige
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 17:13:19
Herbert_Grom
Hallo Margarete,
Application.EnableEvents = False dient dazu, damit Eintragungen während des Makroablaufs nicht als weitere Aktivität behandelt werden. Dies braucht man bei einem Makro, welches aus der Tabelle ("Klassen-Module"/"Class-Module") arbeitet. Hier der Code für eine Schaltfläche:

Sub LZ()
If ActiveCell.Column = 3 Then
If ActiveCell.Value = "LZ" And _
Cells(ActiveCell.Row, 4) = "offen1" Or _
Cells(ActiveCell.Row, 4) = "offen2" And _
CDate(Cells(1, 1)) 
Servus
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 18:10:38
MB12
Hallo Herbert,
na klar, hätte ich mit etwas Nachdenken auch rausfinden können!!
Danke vielmals und einen schönen Frühlingsabend
Margarete
Anzeige
AW: noch 'ne Schleife mit 2 Bedingungen
26.04.2021 18:15:59
Herbert_Grom
Hallo Margarete,
da hast du allerdings recht! Aber so geht es uns doch allen immer mal wieder! Und ich nehme mir jedes Mal vor, beim nächsten Mal denke ich bestimmt vorher noch mal nach! Und dann, dann ist es doch wieder passiert. Aber wir sind Menschen und damit steht uns die Unvollkommenheit zu! Basta! ;o)=)
Servus

354 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige