Hallo,
wie kann ich die Funktion Kürzen() in ein Makro einbauen?
Zum Berechnen von Zeiten werden die letzten beiden Stellen einer Zahl als Minuten betrachtet und sollen in entsprechende Dezimalzahlen umgerechnet werden. Zur Zeit funktioniert das so:
In Zelle C6 steht die Zahl 741 (das soll 7:41 Uhr entsprechen).
In Zelle P6 steht die Formel:
=C6/100-(C6/100-(KÜRZEN(C6/100)))+((C6/100-(KÜRZEN(C6/100)))*10/6)
das ergibt wie gewüscht 7,68
730 (entspricht 7:30 Uhr) ergibt entsprechend 7,5
Um weitere Berechnungen einfacher durchführen zu können möchte ich die Berechnung in einem Makro (meinem Ersten) durchführen. Ich möchte in die Zelle P6 dann einfach "ZeitzuZahl(A6)" eintragen. Meine (wahrscheinlich zu einfache) Idee funktioniert leider nicht:
Function ZeitZuZahl(Zeit)
ZeitZuZahl = Zeit/100-(Zeit/100-(KÜRZEN(Zeit/100)))+((Zeit/100-(KÜRZEN(Zeit/100)))*10/6)
End Function
Offensichtlich ist die Funktion Kürzen() dem Makro nicht bekannt. Wie funktioniert das Makro richtig?
Gruss
MrMurphy
Funktion Kürzen() im Makro benutzen
Moderator: Moderatoren
Re: Funktion Kürzen() im Makro benutzen
Int() (von Integer) gibt den Ganzzahl-Anteil einer Zahl zurück und verwirft die Dezimalstellen. Bei dir muss es also Int(Zeit/100) heißen.
Gruß
lorbass
Gruß
lorbass
Re: Funktion Kürzen() im Makro benutzen
Hallo
Wenn du Calc-funktionen in Basic verwenden möchtest, musst du hier nachlesen.
In deinem Fall tuns auch die Laufzeitfunktionen 'fix' oder 'int' oder auch \ als Operator:
Siehe dazu auch:
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig30
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig34
Gruß Karo
Wenn du Calc-funktionen in Basic verwenden möchtest, musst du hier nachlesen.
In deinem Fall tuns auch die Laufzeitfunktionen 'fix' oder 'int' oder auch \ als Operator:
Code: Alles auswählen
function zahlzuzeit(x)
zahlzuzeit = x \ 100 + (x mod 100) / 60
End function
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig30
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig34
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Funktion Kürzen() im Makro benutzen
Hallo,
vielen Dank für die Antworten, das funktioniert.
Aus den Gegenüberstellungen der deutschen und englischen Funktionen wollte ich gleich mal runden = round ausprobieren. Das funktioniert leider nicht. Ohne Runden funktioniert die Funktion:
Function ZahlZuZeit (Zahl)
ZahlZuZeit = ((Zahl-int(Zahl))*0.6+int(Zahl))*100
End Function
Mit Runden leider nicht mehr:
Function ZahlZuZeit (Zahl)
ZahlZuZeit = round(((Zahl-int(Zahl))*0.6+int(Zahl));2)*100
End Function
Was mache ich hier falsch? Calc gibt die Fehlermeldung "Fehler in der Klammerschachtelung", obwohl ich die Funktion genau wie runden(Zahl;Nachkommastellen) eintrage, also round(...;2) einfüge.
Gruss
MrMurphy
vielen Dank für die Antworten, das funktioniert.
Aus den Gegenüberstellungen der deutschen und englischen Funktionen wollte ich gleich mal runden = round ausprobieren. Das funktioniert leider nicht. Ohne Runden funktioniert die Funktion:
Function ZahlZuZeit (Zahl)
ZahlZuZeit = ((Zahl-int(Zahl))*0.6+int(Zahl))*100
End Function
Mit Runden leider nicht mehr:
Function ZahlZuZeit (Zahl)
ZahlZuZeit = round(((Zahl-int(Zahl))*0.6+int(Zahl));2)*100
End Function
Was mache ich hier falsch? Calc gibt die Fehlermeldung "Fehler in der Klammerschachtelung", obwohl ich die Funktion genau wie runden(Zahl;Nachkommastellen) eintrage, also round(...;2) einfüge.
Gruss
MrMurphy
Re: Funktion Kürzen() im Makro benutzen
Das ist einfach festzustellen: Du bist Karolus' Link nicht gefolgt und versuchst schon wieder, eine Calc-Funktionen direkt in Basic zu verwenden.MrMurphy hat geschrieben:Was mache ich hier falsch?
Gruß
lorbass