Soweit ich bisher recherchiert habe, ist VBA für diese einfachen Rechenoperationen ziemlich ähnlich zu StarBasic.
Ja, natürlich. Ich konnte wirklich nicht wissen wie einfach Dein Code ist. Sachen bei denen der Code in StarBasic und VBA gleich sind gibt es natürlich. Mir war das auch bekannt, nur sind die Möglichkeiten, wegen der notwendigen Codegleichheit so gering das es sich nicht besonders lohnt darüber nachzudenken, denn Rechnungen wie Sie Deine Funktion umfaßt kann man ja auch mit Formeln erledigen, wo Du dann direkt nach *.xls exportieren kannst und die unten beschriebene Arbeit mit dem Ex-/Importieren das Codes nicht hast.
Richtig ist andererseits natürlich das Formeln nicht beliebig lang sein dürfen, habe gerade den Wert nicht im Kopf, so 500 bis 600 Zeichen, vielleicht 512? Oder ebend mit Hilfstabelle.
Mein Plan ist daher folgender: Ich nehm' mir den exportierten Excel-File nebst StarBasic-Code mit in die Arbeit, lade dort den Kalender, editiere neue Makros für das so entstehende Sheet und kopiere dort den StarBasic-Code rein.
Du hast vollkommen Recht. Die von Dir aufgeführte Funktion sollte so handhabbar sein (vorausgesetzt das auch Sub/Function Tagesnummer() existiert).
Nun muß ich aber nach Prüfung einräumen, das es nicht möglich ist geänderten Code in OOo zu speichern, wenn der aus *.xls stammt bzw. umsomehr Du erstmalig in *.xls speicherst. Ich hatte bisher nur vermutet das Du keine neuen Module anlegen kannst aber bestehende auch mit Veränderungen übernommen werden, Tatsache scheint aber zu sein das Du nur den Orginalcode in einer neuen Exceldatei speichern kannst.
Also hier lag mein Denkfehler.
(ist halt nur so das des gesamte Verfahren ohnehin nicht direkt geht (der Code ist bei Öffnen von *.xls immer auskommentiert) und selbst wenn es ja nur sehr einfache Möglichkeiten gäbe, weshalb ich mich praktisch noch nie damit auseinandergesetzt habe)
Insofern ist nun aber Dein Vorschlag goldrichtig. Für einfache Dinge (wie die konkrete Funktion die Du anführst) gehe einfach so vor:
-mach in OOo so das alles paßt, also Funktionen erstellen und die Aufrufe der Funktionen in Zellen des Blattes schreiben
-nun speichere erstmal als *.sxw damit Du eine komplett funktionierende Datei hast
-gehe jetzt in die Basic-Ide und speichere den Inhalt des betreffenden Moduls (Deine Funktionen) mittels der Schaltfläche "Quelltext speichern unter..."
-speichere nun die Datei als *.xls und der Code geht verloren
-öffne die *.xls-Datei in Excel und wechsele in die Basic-IDE
-erstelle im entsprechenden Dokument ein neues Modul und setze den Cursor in den noch leeren Code-Bereich dieses Moduls
-wähle Einfügen>Datei und wähle die Datei in die Du den Code exportiert hattest
- der Code wird eingefügt und da die Funktionsaufrufe auf dem Tabellenblatt unverändert sein sollten sollte es jetzt funktionieren (Du must wohl einmalig Taste F9 drücken um die entsprechenden Zellen zu aktualisieren)
Ich habe das Verfahren gerade durchgespielt und das geht bei mir prima.
Wenn Du es bei Dir getestet hast, würde ich mich über eine kurze Rückmeldung hier im Forum freuen.
Was das Erhalten der Datei angeht, hatte ich sowieso vor, den Kalender früher oder später zum Download bereitzustellen. Nur im Moment würde ich das lieber nicht, denn durch meine Planlosigkeit ist der Aufbau der Berechnungen wirklich, wirklich übel! Da muss ich vorher nochmal drüberschauen, und selbst dann werdet ihr mich noch auslachen.
Ausgelacht hätte ich Dich ohnehin nicht, aber das hat sich ja jetzt erledigt.
Gruß
Stephan
[quote]Soweit ich bisher recherchiert habe, ist VBA für diese einfachen Rechenoperationen ziemlich ähnlich zu StarBasic.[/quote]
Ja, natürlich. Ich konnte wirklich nicht wissen wie einfach Dein Code ist. Sachen bei denen der Code in StarBasic und VBA gleich sind gibt es natürlich. Mir war das auch bekannt, nur sind die Möglichkeiten, wegen der notwendigen Codegleichheit so gering das es sich nicht besonders lohnt darüber nachzudenken, denn Rechnungen wie Sie Deine Funktion umfaßt kann man ja auch mit Formeln erledigen, wo Du dann direkt nach *.xls exportieren kannst und die unten beschriebene Arbeit mit dem Ex-/Importieren das Codes nicht hast.
Richtig ist andererseits natürlich das Formeln nicht beliebig lang sein dürfen, habe gerade den Wert nicht im Kopf, so 500 bis 600 Zeichen, vielleicht 512? Oder ebend mit Hilfstabelle.
[quote]Mein Plan ist daher folgender: Ich nehm' mir den exportierten Excel-File nebst StarBasic-Code mit in die Arbeit, lade dort den Kalender, editiere neue Makros für das so entstehende Sheet und kopiere dort den StarBasic-Code rein.[/quote]
Du hast vollkommen Recht. Die von Dir aufgeführte Funktion sollte so handhabbar sein (vorausgesetzt das auch Sub/Function Tagesnummer() existiert).
Nun muß ich aber nach Prüfung einräumen, das es nicht möglich ist geänderten Code in OOo zu speichern, wenn der aus *.xls stammt bzw. umsomehr Du erstmalig in *.xls speicherst. Ich hatte bisher nur vermutet das Du keine neuen Module anlegen kannst aber bestehende auch mit Veränderungen übernommen werden, Tatsache scheint aber zu sein das Du nur den Orginalcode in einer neuen Exceldatei speichern kannst.
Also hier lag mein Denkfehler.
(ist halt nur so das des gesamte Verfahren ohnehin nicht direkt geht (der Code ist bei Öffnen von *.xls immer auskommentiert) und selbst wenn es ja nur sehr einfache Möglichkeiten gäbe, weshalb ich mich praktisch noch nie damit auseinandergesetzt habe)
Insofern ist nun aber Dein Vorschlag goldrichtig. Für einfache Dinge (wie die konkrete Funktion die Du anführst) gehe einfach so vor:
-mach in OOo so das alles paßt, also Funktionen erstellen und die Aufrufe der Funktionen in Zellen des Blattes schreiben
-nun speichere erstmal als *.sxw damit Du eine komplett funktionierende Datei hast
-gehe jetzt in die Basic-Ide und speichere den Inhalt des betreffenden Moduls (Deine Funktionen) mittels der Schaltfläche "Quelltext speichern unter..."
-speichere nun die Datei als *.xls und der Code geht verloren
-öffne die *.xls-Datei in Excel und wechsele in die Basic-IDE
-erstelle im entsprechenden Dokument ein neues Modul und setze den Cursor in den noch leeren Code-Bereich dieses Moduls
-wähle Einfügen>Datei und wähle die Datei in die Du den Code exportiert hattest
- der Code wird eingefügt und da die Funktionsaufrufe auf dem Tabellenblatt unverändert sein sollten sollte es jetzt funktionieren (Du must wohl einmalig Taste F9 drücken um die entsprechenden Zellen zu aktualisieren)
Ich habe das Verfahren gerade durchgespielt und das geht bei mir prima.
Wenn Du es bei Dir getestet hast, würde ich mich über eine kurze Rückmeldung hier im Forum freuen.
[quote]Was das Erhalten der Datei angeht, hatte ich sowieso vor, den Kalender früher oder später zum Download bereitzustellen. Nur im Moment würde ich das lieber nicht, denn durch meine Planlosigkeit ist der Aufbau der Berechnungen wirklich, wirklich übel! Da muss ich vorher nochmal drüberschauen, und selbst dann werdet ihr mich noch auslachen. [/quote]
Ausgelacht hätte ich Dich ohnehin nicht, aber das hat sich ja jetzt erledigt.
Gruß
Stephan