Funktion Nettoarbeitstage
Moderator: Moderatoren
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Funktion Nettoarbeitstage
Hallo Leute,
im OpenOffice-Calc gibt es die Funktion "NETTOARBEITSTAGE()". Ich möchte das dazu im OpenOffice-Basic bestimmt vorhandene Pendant in einem Makro nutzen. Kann mir jemand sagen ob es die Funktion gibt, wie sie heißt und wie die Syntax lautet?
Gruß und besten Dank,
Friedhelm
im OpenOffice-Calc gibt es die Funktion "NETTOARBEITSTAGE()". Ich möchte das dazu im OpenOffice-Basic bestimmt vorhandene Pendant in einem Makro nutzen. Kann mir jemand sagen ob es die Funktion gibt, wie sie heißt und wie die Syntax lautet?
Gruß und besten Dank,
Friedhelm
Re: Funktion Nettoarbeitstage
Hallo Friedhelm,
ist es das was Du suchst?
Hier die gesamte Sammlung der Funktionen.
Viel Erfolg.
Jürgen
ist es das was Du suchst?
Code: Alles auswählen
=NETWORKDAYS (start date; end date; holydays)
Viel Erfolg.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Re: Funktion Nettoarbeitstage
Erstmal schönen Dank für die schnelle Antwort.
Leider ist dem OpenOffice-Basic eine Funktion NETWORKDAYS() nicht bekannt. M.E. ist das auch nur die originale Bezeichnung für NETTOARBEITSTAGE().
Damit kann man einer Zelle im Calc einen Wert zuweisen.
Ich möchte aber einer Basic-Variablen einen Wert zuweisen. Der Code müsste also in etwa folgendermassen aussehen:
arbeitstage = arbeitstage + NETWORKDAYS( sheet1.getcellbyposition(0,3).value ; sheet1.getcellbyposition(0,4).value)
ein derartiger Code erzeugt aber eine Fehlermeldung.
Gruß, Friedhlem
Leider ist dem OpenOffice-Basic eine Funktion NETWORKDAYS() nicht bekannt. M.E. ist das auch nur die originale Bezeichnung für NETTOARBEITSTAGE().
Damit kann man einer Zelle im Calc einen Wert zuweisen.
Ich möchte aber einer Basic-Variablen einen Wert zuweisen. Der Code müsste also in etwa folgendermassen aussehen:
arbeitstage = arbeitstage + NETWORKDAYS( sheet1.getcellbyposition(0,3).value ; sheet1.getcellbyposition(0,4).value)
ein derartiger Code erzeugt aber eine Fehlermeldung.
Gruß, Friedhlem
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Funktion Nettoarbeitstage
(1) das Analyse-AddIn muss installiert sein
(2) im Basic-Code wird dann ein Objekt für den Zugriff auf die Calc-Funktionen benötigt
(3) nun können die Funktionen über das Objekt verwendet werden: 1. Argument ist der Funktionsname, wie er bei Dir in Calc angezeigt wird, 2. Argument sind die benötigten Parameter, die als Array übergeben werden müssen
Damit klappt es?
(2) im Basic-Code wird dann ein Objekt für den Zugriff auf die Calc-Funktionen benötigt
Code: Alles auswählen
FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
Code: Alles auswählen
aResult=FuncAcc.callFunction("Nettoarbeitstage", array( (date()), (date() - 3) ))
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Re: Funktion Nettoarbeitstage
Sorry, da fehlt mir doch noch ein bischen Hintergrundwissen.
Die Übergabe der Datumswerte (die liegen in Zellen rum) klappt nicht.
Danke trotzdem, Friedhelm
Die Übergabe der Datumswerte (die liegen in Zellen rum) klappt nicht.
Danke trotzdem, Friedhelm
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Funktion Nettoarbeitstage
Friedhelm,
warum klappt es nicht?
Da die Daten in einer Tabelle vorliegen und die benötigte Funktion eine Calc-Funktion ist: geht nicht das Berechnen in der Calc-Tabelle?
Wie sieht Dein Code denn aus?
"sheet1" ist XLS-Code, bei OOo (in Einzelschritten):Ein Datum in Calc ist eine Zahl, die entsprechend formatiert wurde. Verwendest Du Zeichenketten, dann lautet die Anweisung: .getString()
In die andere Richtung funktioniert das entsprechend durch die Anweisungen
.setString( "Feiertag" ) und .setValue( 39353 )
Nun unser Funktionsaufruf
Klappt es nun?
warum klappt es nicht?
Da die Daten in einer Tabelle vorliegen und die benötigte Funktion eine Calc-Funktion ist: geht nicht das Berechnen in der Calc-Tabelle?
Wie sieht Dein Code denn aus?
"sheet1" ist XLS-Code, bei OOo (in Einzelschritten):
Code: Alles auswählen
oDok = ThisComponent ' Dokument im Vordergrund, welches das Makro ruft
oTab = oDok.getSheets() ' ' alle Tabellenblätter des Calc
oBlatt = oTab.getByName( "Tabelle1" ) ' Tabellenblatt nach Namen holen
' hole A4
oStartDatum = oBlatt.getCellByPosition( 0,3 ).getValue() ' Angaben nach Spalte, Zeile: Null-basiert
' hole B4
oEndeDatum = oBlatt.getCellByPosition( 1,3 ).getValue()
In die andere Richtung funktioniert das entsprechend durch die Anweisungen
.setString( "Feiertag" ) und .setValue( 39353 )
Nun unser Funktionsaufruf
Code: Alles auswählen
' Berechnen unter Nutzung der Calc-AddIn-Funktion
FuncAcc = createunoservice("com.sun.star.sheet.FunctionAccess")
oTage = FuncAcc.callFunction("Nettoarbeitstage", array( oStartDatum, oEndeDatum ))
' Rückgabewert ist DOUBLE
print oTage
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Re: Funktion Nettoarbeitstage
Hallo,
jetzt funktioniert es wie es soll. Mein Fehler war, ich habe die Variablen für Start- und Endedatum als 'date' definiert. Das klappt dann nicht.
Danke nochmal,
Friedhelm
jetzt funktioniert es wie es soll. Mein Fehler war, ich habe die Variablen für Start- und Endedatum als 'date' definiert. Das klappt dann nicht.
Danke nochmal,
Friedhelm