AW: An Klaus M.VDT :)
15.03.2013 08:33:16
Klaus
Hallo Judith,
ich verstehe dich so, dass
A) nur Vergleichswohnungen unter 6,50/m² herangezogen werden dürfen und
B) Wohnungen für über 6,50/m² keine Vergleichswohnungen aufgelistet bekommen und
C) der Wert 6,50 sich je nach Laune deiner Vorgesetzen ändern kann :-) und
D) du nicht die fertige Lösung unkommentiert haben willst, sondern eine Erklärung dazu damit du es lernst
Zunächst mal die Formel. Hier nehme ich das 6,5 raus und ersetze es durch einen Zellbezug (ich nehm mal AH12, kannst du ja verschieben wie du willst)
=IF((B16=B$15)*(O16*(W16=W$15)*(AA16=AA$15)*(K16>$K$15-10)*(K16
In der Formel selbst musst du dich entscheiden, ob du "kleiner" oder "kleiner gleich" nimmst - ich hab mal "kleiner gleich" genommen.
Als zweites schauen wir im Makro nach, wie wir verhindern dass zu teuere Wohnungen einen Vergleich bekommen.
Im ersten Ansatz ist das einfach, mal in Pseudocode
WENN wohnung.aktuelleZeile.Preism² KLEINER GLEICH Zelle.AH12.Inhalt DANN
[Code ausführen]
SONST
[Code nicht ausführen]
Eine Kleinigkeit müssen wir noch beachten: die Vergleichswohnungen aus einem eventuellem "altem" Makrodurchlauf müssen gelöscht werden, sonst bleiben bei den teueren Wohnungen Artefakte stehen. Die 6,50 müssen wir nicht fix im Makro schreiben, da sie bereits in einer Zelle verankert sind.
Statt den meterlangen Code hier rein zu kopieren, lade ich die Datei überarbeitet wieder hoch. Alle im Makro geänderten Zeilen kommentiere ich, damit du die Änderung selbst nachvollziehen kannst.
https://www.herber.de/bbs/user/84378.xlsm
Wenn du die Zelle, in der der Vergleichspreis "6,50" steht, in der Tabelle verschiebst: Denk daran, auch im Makro den Bezug dahin zu aktualisieren!
dPreis = ActiveSheet.Range("AH12").Value 'Vergleich bis 6,50/m² (Wert aus Zelle)
Nu aber, oder? :-) Heidenaufwand würd ich das nicht nennen. Monieren könnte man am ehesten, dass das ganze Programm mit einer sehr heißen Nadel gestrickt ist, aber das ist eben so wenn die Werten Herrn Chefs zwischendurch Sonderwünsche reinrufen.
Grüße,
Klaus M.vdT.