Funktion Kürzen() im Makro benutzen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Funktion Kürzen() im Makro benutzen

Re: Funktion Kürzen() im Makro benutzen

von lorbass » Mo, 16.06.2008 09:40

MrMurphy hat geschrieben:Was mache ich hier falsch?
Das ist einfach festzustellen: Du bist Karolus' Link nicht gefolgt und versuchst schon wieder, eine Calc-Funktionen direkt in Basic zu verwenden.

Gruß
lorbass

Re: Funktion Kürzen() im Makro benutzen

von MrMurphy » So, 15.06.2008 23:08

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

Re: Funktion Kürzen() im Makro benutzen

von Karolus » So, 15.06.2008 21:05

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:

Code: Alles auswählen

function zahlzuzeit(x)
zahlzuzeit = x \ 100 + (x mod 100) / 60
End function
Siehe dazu auch:
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig30
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig34

Gruß Karo

Re: Funktion Kürzen() im Makro benutzen

von lorbass » So, 15.06.2008 20:39

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

Funktion Kürzen() im Makro benutzen

von MrMurphy » So, 15.06.2008 18:31

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

Nach oben