If... then vs Elseif [Excel]

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
If... then vs Elseif [Excel]
Hallo zusammen,

bei dem Versuch mit VBA Exxel mehr als 3 Bedingte Formatierungen machen zu lassen, stellte sich mir folgende Frage.

Ich lasse mir in einer Spalte Werte berechnen, diese leigen zweichen 0 und 100% und sollen in Zehnerschritten farbig unterschieden werden. Beide Varianten klappen (hier nur Pseudocode), aber welche ist die "Laufzeitmäßig" besser.

Variante 1

code:
1:
2:
3:
4:
5:
If cell.Value 'zwischen 0 und 10%' Then Color1
If cell.Value 'zwischen 10 und 20%' Then Color2
...
If cell.Value 'zwischen 90 und 100%' Then Color10



Variante 2

code:
1:
2:
3:
4:
5:
If cell.Value 'zwischen 0 und 10%' Then Color1
ElseIf cell.Value 'zwischen 10 und 20%' Then Color2
...
ElseIf cell.Value 'zwischen 90 und 100%' Then Color10



Es kann ja immer nur ein Fall richtig sein und es gibt auch immer einen eintretenden Fal. Meine Frage, prüft Varinate 1 immer alle 10 Bedingungen ab und Variante 2 bricht ab, sobald eine Bedingung erfüllt wurde?

LG Wink
kiste Auf diesen Beitrag antworten »

Von der programmiertechnischen Seite sollte Variante 2 auf jeden Fall schneller sein, also ist die Antwort auf deine Frage Ja.

(vorrausgesetzt Excel wurde nicht vollkommen schlecht programmiert Big Laugh )
tigerbine Auf diesen Beitrag antworten »

Danke, dann hab ich das Richtige gewählt. Zumindest theoretisch Big Laugh
SchonAbgemeldet Auf diesen Beitrag antworten »
Optimierung
Hallo tigerbine,
wenn das Auftreten zwischen 0 und 100% gleichverteilt ist, kannst Du durch fotlaufende Halbierung optimieren, also
If cell.Value 'zwischen 0 und 50%' Then
If cell.Value 'zwischen 0 und 25%' Then
If cell.Value 'zwischen 0 und 12,5%' Then
Color1
Else Color 2
. . .
ElseIf cell.Value 'zwischen 50 und 100%' Then
. . .

Das ist im Mittel schneller als nacheinander zu prüfen.

Wenn bestimmte Bereiche (0-10, 10-20,...) häufiger vorkommen, dann kannst Di die Reihenfolge der Bedingungen der Häufigkeit anpassen. Die Bereiche, die selten belegt sind, an den Schluss.

Ganz zum Schluss kannst Du noch einfügen

If time < 2 Uhr Then

Prost

Cheers outsc. . .
tigerbine Auf diesen Beitrag antworten »
RE: Optimierung
Danke für den Tipp. Also bei mir liegt nun die Häufigkeit 'zufällig' so, dass ich schon die optimale Prüffolge habe. Aber ich werde mir den Gedanken merken, werde ja auch mal auf 'andere Verteilungen' treffen.

Wink
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »