AW: wenn - Formel als Makro
IngGi
Hallo Dani,
die Formel - und damit auch das Makro - ließe sich natürlich im konkreten Beispiel weitaus einfacher und eleganter gestalten. Statt auf alle Zahlen von 1 bis 7 zu prüfen, könnte man einfach auch auf <=7, >=1 und ganze Zahl prüfen. Aber ich denke mal, das ist nur ein etwas unglücklich gewähltes Testbeispiel und es geht dir generell um die Struktur des Makros.
Nachfolgendes Makro sieht nicht besonders professionell aus, da ich jede einzelne Zahl in einer _
eigenen If - Zeile prüfe. Man könnte auch alle Zahlen in einer If - Zeile prüfen und die Prüfungen dabei mit OR verknüpfen, also
If Range("A8") = 1 Or Range("A8") = 2 ... Then
Das wäre allerdings die langsamere Variante (was natürlich auch nur zum Tragen kommt, wenn die gesamte If - Struktur nicht nur einmal, sondern vielfach durchlaufen wird). Der Grund dafür ist der, das dann bei jedem Durchlauf der If - Struktur immer jeweils alle Bedingungen geprüft werden würden. Wenn man dagegen jede Prüfung in eine eigene If - Zeile steckt, dann werden die nachfolgenden Bedingungen erst gar nicht mehr geprüft, sobald eine Bedingung nicht erfüllt ist. Das Makro steigt dann immer sofort aus der gesamten If - Struktur aus.
Die Zelle X500 wäre im Beispiel die Zelle, in der deine Formel stehen würde:
Dim blnErfuellt As Boolean
If Range("A8") = 1 Then
If Range("A8") = 2 Then
If Range("A8") = 3 Then
If Range("A8") = 4 Then
If Range("A8") = 5 Then
If Range("A8") = 6 Then
If Range("A8") = 7 Then
Range("X500") = Round((Range("K8") * Range("H8") / _
Range("Q8")) / Range("Q8"), 0)
blnErfuellt = True
End If
End If
End If
End If
End If
End If
End If
If Not blnErfuellt Then
Range("X500") = 0
blnErfuellt = False
End If
Code eingefügt mit VBA in HTML 2.0.0.3
Gruß Ingolf