🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

(Gelöst) Bekomme Fehler bei IF und Esle

Alles zur Programmierung im LibreOffice.
Atwist
Beiträge: 82
Registriert: Mo 14. Sep 2015, 18:46

(Gelöst) Bekomme Fehler bei IF und Esle

Beitrag von Atwist » Mi 26. Okt 2016, 13:51

Ich bekomme einen Fehler "BASIC-syntaxiserror ELSE/Endif without if" aber ich benutze doch eine "if" bin ich jetzt blöd oder Lo :shock:

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
Zuletzt geändert von Atwist am Do 27. Okt 2016, 10:15, insgesamt 1-mal geändert.
Schöne grüße aus Emsland

Andreas

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Bekomme Fehler bei IF und Esle

Beitrag von craig » Mi 26. Okt 2016, 15:12

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
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Bekomme Fehler bei IF und Esle

Beitrag von karolus » Mi 26. Okt 2016, 15:41

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
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Bekomme Fehler bei IF und Esle

Beitrag von craig » Mi 26. Okt 2016, 15:56

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
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Atwist
Beiträge: 82
Registriert: Mo 14. Sep 2015, 18:46

Re: Bekomme Fehler bei IF und Esle

Beitrag von Atwist » Mi 26. Okt 2016, 16:47

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"
Schöne grüße aus Emsland

Andreas

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Bekomme Fehler bei IF und Esle

Beitrag von craig » Mi 26. Okt 2016, 16:54

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
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Atwist
Beiträge: 82
Registriert: Mo 14. Sep 2015, 18:46

Re: Bekomme Fehler bei IF und Esle

Beitrag von Atwist » Mi 26. Okt 2016, 16:57

IF .State = 1 THEN
Schöne grüße aus Emsland

Andreas

craig
* LO-Experte *
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Bekomme Fehler bei IF und Esle

Beitrag von craig » Mi 26. Okt 2016, 17:10

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
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Atwist
Beiträge: 82
Registriert: Mo 14. Sep 2015, 18:46

Re: Bekomme Fehler bei IF und Esle

Beitrag von Atwist » Mi 26. Okt 2016, 17:31

Leider Nein.
Error.png
Error.png (52.7 KiB) 4030 mal betrachtet
Schöne grüße aus Emsland

Andreas

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Bekomme Fehler bei IF und Esle

Beitrag von karolus » Mi 26. Okt 2016, 17:36

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.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten