Seite 1 von 2
(Gelöst) Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 13:51
von Atwist
Ich bekomme einen Fehler "BASIC-syntaxiserror ELSE/Endif without if" aber ich benutze doch eine "if" bin ich jetzt blöd oder Lo
Code: Alles auswählen
Sub WeerGaveSchulden
Dim Button As Object
Doc = ThisComponent
Sheets = Doc.Sheets()
Sheets.getByName("Dashboard")
with
Sheet.DrawPage.Forms.getByIndex(0).getByName("ShowSchulden")
If .State = 1 then Sheet.getByName("Schulden").visible = True
Else
Sheet.getByName("Schulden").visible = False
Endif
end with
End sub
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 15:12
von craig
Hallo,
dieser Fehler wird immer wieder gemacht!
EINZEILIGES WENN/DANN
Hier wird kein END IF benötigt.
If a=b then x=100
MEHRZEILIGES WENN/DANN bzw. WENN/DANN/SONST
IF .... THEN
Anweisung 1
Else
Anweisung 2
END IF
Daraus resultiert:
Code: Alles auswählen
SUB WeerGaveSchulden
DIM Button As Object
Doc = ThisComponent
Sheets = Doc.Sheets()
Sheets.getByName("Dashboard")
WITH Sheet.DrawPage.Forms.getByIndex(0).getByName("ShowSchulden")
IF .State = 1 THEN
Sheet.getByName("Schulden").visible = True
ELSE
Sheet.getByName("Schulden").visible = False
END IF
END WITH
END SUB
Ausserdem:
- WITH "mit WAS?"
Muss einzeilig geschrieben sein!
- Schreibfehler Endif --> END IF
Ich weiß, viele schreiben den Code "quick'n dirty". Aber gerade wenn man sich nicht perfekt auskennt,
ist es sehr hilfreich den Code sauber einzurücken. Siehe mein Beispiel im Codeblock.
Man behält besser den Überblick und erleichtert die Fehlersuche ungemein.
Gruß
Craig
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 15:41
von karolus
Hallo
@Craig: Und warum `dim`st du Button wenn das Ding im weiteren eh nicht benutzt wird.
Und was ist mit `sheet` wo kommt das dann her?
Unter der Annahme das der Button auf den der Benutzer klickt identisch ist mit dem Button dessen `State` hier abgefragt wird:
Code: Alles auswählen
Sub tooglesheet(event)
button = event.Source.Model
doc = button.Parent.Parent.Parent
schulden = doc.Sheets.getByName("Schulden")
schulden.IsVisible = IIF(button.State, True, False)
End Sub
Karolus
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 15:56
von craig
Hallo Karolus,
@Craig: Und warum `dim`st du Button wenn das Ding im weiteren eh nicht benutzt wird.
Ich habe lediglich die offensichtlichen Fehler bezüglich der IF-Anweisung aus
dem Code entfernt und den Rest 1:1 übernommen, da dies nicht Bestandteil der Frage ist.
Mit Deiner professionellen und intelligenten Art zu programmieren kann ich eh nicht mithalten.
Ich freue mich immer wenn ich etwas von Dir lernen kann. Danke!
Gruß
Craig
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 16:47
von Atwist
Leider muss ich mitteilen dass beide Lösungen nicht bei mir Funktionieren.
@Craig bei deine Lösung bekomme ich eine "Basic-Runtime-Error Objectvariable nicht eingestellt"
@Korolus bei deine Lösung bekomme ich eine "Basic-Runtime-Error Das Argument ist nicht optional"
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 16:54
von craig
Hallo,
@Craig bei deine Lösung bekomme ich eine "Basic-Runtime-Error Objectvariable nicht eingestellt"
In welcher Zeile wird der Fehler angezeigt?
In der angezeigten Zeile, steht ggf. ein Name für z.B. ein Sheet, dass nicht existiert oder anders geschrieben wird.
Kann auch der Button-Name sein auf den Du verweist,
Gruß
Craig
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 16:57
von Atwist
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 17:10
von craig
Hallo,
und so:
Code: Alles auswählen
SUB WeerGaveSchulden
DIM Button As Object
Doc = ThisComponent
Sheets = Doc.Sheets()
Sheets.getByName("Dashboard")
Button=Sheet.DrawPage.Forms.getByIndex(0).getByName("ShowSchulden")
IF Button.State = 1 THEN
Sheet.getByName("Schulden").visible = True
ELSE
Sheet.getByName("Schulden").visible = False
END IF
END SUB
Gruß
Craig
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 17:31
von Atwist
Leider Nein.

- Error.png (52.7 KiB) 4021 mal betrachtet
Re: Bekomme Fehler bei IF und Esle
Verfasst: Mi 26. Okt 2016, 17:36
von karolus
Atwist hat geschrieben:
@Korolus bei deine Lösung bekomme ich eine "Basic-Runtime-Error Das Argument ist nicht optional"
Natürlich bekommst du den Fehler, du darfst das so
nicht aus der Basic-IDE aufrufen, du musst das schon mit einem Ereignis der Schaltfläche verknüpft, aufrufen.
@craig: solange da nirgends ein `Sheet` definiert wird kann das nicht laufen.