🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
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:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten