Unübersichtliche If-Anweisung vereinfachen
13.09.2017 18:55:08
Volker
Ich brüte gerade darüber, wie ich u.a. funktionierende, jedoch unübersichtliche If-Anweisung kürzer und übersichtlicher formulieren kann.
Ziel ist es, bei der Formatierung von Tabellenblättern zu überprüfen, ob jeweils der Wert in "B6" oder "B51" oder "B96" oder "B141" oder "B186" oder "B231" des Aktiven Blattes in den Grenzen jeweils zweier Werte im Bezugstabellenblatt "Master" liegt. Und zwar entweder zwischen "Master!M2" und "Master!N2" oder "Master!M3" und "Master!N3" oder "Master!M4" und "Master!N4" oder "Master!M5" und "Master!N5" oder "Master!M6" und "Master!N6"
With ActiveSheet
If .Range("B6").Value >= Range("Master!M2") And .Range("B6").Value = Range("Master!M2") And .Range("B51").Value Or .Range("B96").Value >= Range("Master!M2") And .Range("B96").Value = Range("Master!M2") And .Range("B141").Value Or .Range("B186").Value >= Range("Master!M2") And .Range("B186").Value = Range("Master!M2") And .Range("B231").Value Or .Range("B6").Value >= Range("Master!M3") And .Range("B6").Value = Range("Master!M3") And .Range("B51").Value Or .Range("B96").Value >= Range("Master!M3") And .Range("B96").Value = Range("Master!M3") And .Range("B141").Value Or .Range("B186").Value >= Range("Master!M3") And .Range("B186").Value = Range("Master!M3") And .Range("B231").Value Or .Range("B6").Value >= Range("Master!M4") And .Range("B6").Value = Range("Master!M4") And .Range("B51").Value Or .Range("B96").Value >= Range("Master!M4") And .Range("B96").Value = Range("Master!M4") And .Range("B141").Value Or .Range("B186").Value >= Range("Master!M4") And .Range("B186").Value = Range("Master!M4") And .Range("B231").Value Or .Range("B6").Value >= Range("Master!M5") And .Range("B6").Value = Range("Master!M5") And .Range("B51").Value Or .Range("B96").Value >= Range("Master!M5") And .Range("B96").Value = Range("Master!M5") And .Range("B141").Value Or .Range("B186").Value >= Range("Master!M5") And .Range("B186").Value = Range("Master!M5") And .Range("B231").Value Or .Range("B6").Value >= Range("Master!M6") And .Range("B6").Value = Range("Master!M6") And .Range("B51").Value Or .Range("B96").Value >= Range("Master!M6") And .Range("B96").Value = Range("Master!M6") And .Range("B141").Value Or .Range("B186").Value >= Range("Master!M6") And .Range("B186").Value = Range("Master!M6") And .Range("B231").Value Anweisung
usw.
Für eine Zelle habe ich an anderer Stelle eine funktionierende Select Case-Anweisung:
Select Case ActiveCell.Offset(1, 0).Value
Case Range("Master!M2") To Range("Master!N2"), Range("Master!M3") To Range("Master!N3"), Range("Master!M4") To Range("Master!N4") _
, Range("Master!M5") To Range("Master!N5"), Range("Master!M6") To Range("Master!N6")
Ich stehe aber auf dem Schlauch, wie ich auch die Bedingung für die Zellen "B6" bis "B231" einbauen kann.
Ich freue mich über hilfreiche Hinweise!
Volker