PDA

Vollständige Version anzeigen : if else fehler


Teebeutel
16.10.2010, 22:01
nabend,

im folgenden sagt er mir den fehler 'Else ohne If'
nehme ich das else raus sagt er mir bei End If 'End If ohne If-Block'
und ist es normal das der automatisch bei Else ein doppelpunkt setzt?
benutze derzeit excel 2003

Sub button()
a = E7
If a = 1 Then Range("E5").Value = Range("E5").Value + 1
Else: GoTo ende
ende:
End If
End Sub

mfg teebeutel

IngGi
16.10.2010, 22:17
Hallo Teebeutel,

es gibt zwei Formen der If-Anweisung:

If x = y then
JA-Anweisungen
...
Else
NEIN-Anweisungen
...
End If

oder

If x = y then JA-Anweisungen Else NEIN-Anweisungen

Wenn du nach dem Then in derselben Zeile weiterschreibst, wird die zweite Form erwartet. Dann muss aber alles in einer Zeile stehen, sonst findet er weder zu der Else-Anweisung, noch zu der End If-Anweisung eine passende If-Anweisung. Bei der zweiten Form gibt es keine End If-Anweisung!

EDIT:

Ich sehe gerade, dass in deinem Beispiel auch folgendes reicht:

Sub button()
Dim a As Long
a = Range("E7")
If a = 1 Then Range("E5").Value = Range("E5").Value + 1
End Sub

Das heißt, es braucht gar keine Else-Anweisung. Dafür wäre aber eine Deklarierung der Variablen a angebracht. Und die Zeile

a = E7

funktioniert so auch nicht, da E7 in dieser Zeile als Variable aufgefasst werden würde.

Gruß Ingolf

Teebeutel
16.10.2010, 22:22
danke ingolf,

ah okay dank dir für den hinweis
werd ich mir merken
nun sagt er mir aber bei den end if den 2ten fehler 'End If ohne If-Block'

mfg teebeutel

IngGi
16.10.2010, 22:26
Hallo Teebeutel,

schau dir nochmal meine vorige Antwort an. Diese habe ich nochmal ergänzt!

Gruß Ingolf

Teebeutel
16.10.2010, 22:31
super vielen dank dafür :) und deine schnelle hilfe :)

eine kleine frage hätte ich noch
ist es auch möglich das E7 bis auf 0 runtergeht und dann es aber nicht mehr E5 erhöht
also wenn in E7 2 steht kann man E5 max um 2 erhöhen


mfg teebeutel

IngGi
16.10.2010, 22:37
Hallo Teebeutel,

so?

Sub button()
If Range("E7") > 0 Then
Range("E7") = Range("E7") - 1
Range("E5") = Range("E5") + 1
End If
End Sub

Gruß Ingolf

Teebeutel
16.10.2010, 22:44
danke ingolf :)
du bist göttlich :boah:

hat mich viel weiter gebracht als ich dachte :)
wünsch dir noch einen schönen abend

mfg teebeutel