❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ 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. 🤗

if-Anweisung in Calc Basic

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
efell
Beiträge: 2
Registriert: Mi 14. Sep 2016, 16:49

if-Anweisung in Calc Basic

Beitrag von efell » Mi 14. Sep 2016, 18:05

Ich habe folgende kleine Funktion in der Basic-IDE geschrieben (dient dazu, zu einer an a übergebenen Anfangszeit, also z.B. 14:30, die voraussichtliche Endzeit eines Fussballspiels zu berechnen, die Rückgabe wäre dann 16:15):

Function ENDE(a as string)
pos=instr(a,":")
stunden=""
minuten=""
for i=1 to pos-1
l=mid(a,i,1)
stunden=stunden+l
next
for i=pos+1 to len(a)
l=mid(a,i,1)
minuten=minuten+l
next
min=val(stunden)*60+val(minuten)+105
minuten=min MOD 60
stunden=(min-minuten)/60
if stunden<10 then h="0"+stunden
else h=""+stunden
end if
m=""+minuten
ENDE=h+":"+m

End Function

Wenn ich die if-Anweisung am Ende herausnehme, läuft auch alles, d.h., wenn ich in der Tabelle eingebe=ENDE("12:00") wird in die Zelle auch 13:45 eingetragen. Lasse ich die if-Anweisung drin, erhalte ich eine Fehlermeldung, und zwar an der Position vom "else" ist dann farbig und durch einen Pfeil markiert und in einem Pop-Up ist zu lesen: Basic-Syntaxfehler.Else/EndIf ohne If. Ob if etc. gross oder klein geschrieben werden, ändert an der Fehlermeldung nicht. Ich habe übrigens LibreOffice 5.0.5.2 installiert

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

[gelöst] Re: if-Anweisung in Calc Basic

Beitrag von craig » Mi 14. Sep 2016, 18:36

Hallo,

ich habe den Code neugeordnet, sonst nichts geändert oder getestet:

Code: Alles auswählen

REM  *****  BASIC  *****
Function ENDE(a as string)
	pos=instr(a,":")
		stunden=""
		minuten=""
	for i=1 to pos-1
		l=mid(a,i,1)
			stunden=stunden+l
	next

	for i=pos+1 to len(a)
		l=mid(a,i,1)
			minuten=minuten+l
	next

	min=val(stunden)*60+val(minuten)+105
		minuten=min MOD 60
			stunden=(min-minuten)/60
	if stunden<10 then 
		h="0"+stunden
	else 
		h=""+stunden
	end if
	
	m=""+minuten
		ENDE=h+":"+m

End Function
Gruß

Craig
Zuletzt geändert von craig am Do 15. Sep 2016, 11:22, insgesamt 1-mal geändert.
Gruß

Craig

Nie die Sicherungskopie vergessen!

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

efell
Beiträge: 2
Registriert: Mi 14. Sep 2016, 16:49

Re: if-Anweisung in Calc Basic

Beitrag von efell » Do 15. Sep 2016, 01:26

Hallo Craig,

Danke für den Hinweis. Darauf dass die Anordnung der Codezeilen eine Rolle spielt, wäre ich nie gekommen.

Jetzt läuft es wie gewünscht.

Danke, Bert :D


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