Seite 1 von 1

Calc Makro: Kopierte Daten werden nicht berechnet

Verfasst: Fr, 03.07.2009 09:07
von Peter_K
Hallo,
ich arbeite gerade an einer Rechnungsverwaltung unter Calc welche aus zwei Formularen besteht. Das erste ist das Rechnungsformular und das zweite das Archiv.
Nach Abschluss der Dateneingabe im Rechnungsformular kann mit einem CommandButton ein Makro gestartet werden , welches die MwSt. berechnet und dann die die Rechnungsdaten in das Archiv kopiert. Mit einem anderen Commandbutton sollen Daten wieder aus dem Archiv zum Rechnungsformular zurückkopiert werden. Soweit funktioniert alles wie vorgesehen. Will ich nun wieder die MwSt. über ein Makro (gleiches wie zuvor beschrieben) neu berechnen lassen, dann werden jedoch die eingetragenen Werte in den Zellen (z.B. 20,00€) nicht übernommen. Obwohl im Formular der Wert "20,00€" eingetragen ist, beinhaltet der (in einer Debugging-Session festgestellt) ausgelesene Wert "0". Trage ich nun in dieser Zelle den Wert 20,00€ manuell ein, dann wird dieser Wert auch wieder korrekt berechnet.
Hat mir jemand einen Tip?
Vorab vielen Dank!

Re: Calc Makro: Kopierte Daten werden nicht berechnet

Verfasst: Fr, 03.07.2009 09:35
von komma4
1) ich glaube mich zu erinnern, dass man Kontrollelemente auch per .setString( wert ) bestücken kann. Das beeinflusst aber nur die Darstellung ... wie setzt Du -Peter_K- das Feld?


2) @Kongotier: ähnliches Problem, beschreibe die Zelle mit .setValue( wert ). Zum Ändern der Zellinhalte (Hochkommata wegnehmen) findest Du hier im Forum einmal eine Beschreibung zum Suchen&Ersetzen (mit reg. Ausdrücken) - oder das Ganze als Makro, bspw. von meiner Makroseite (s. footer)

Re: Calc Makro: Kopierte Daten werden nicht berechnet

Verfasst: Fr, 03.07.2009 09:43
von Peter_K
Hallo komma4,
vielen Dank für die Antwort.
Gesetzt wird das Feld im Rechnungsformular mit:

Code: Alles auswählen

oInvoiceSheet.getCellByPosition(ColumnIDataTotalAmount,LineIDataMWST7).setString(oBills.getCellByPosition(iSourceColumnCounter,iSourceLineCounter ).getString)
"oInvoiceSheet" ist ein Objekt des Rechnungsformulars
"oBills" ist das Objekt des Archivformulars

Wie schon Anfangs geschrieben, der kopierte Wert aus dem Archiv wird im Rechnungsformular korrekt dargestellt. Jedoch "weis" die Zelle anscheinen nicht von diesem Wert.

Re: Calc Makro: Kopierte Daten werden nicht berechnet

Verfasst: Fr, 03.07.2009 10:16
von komma4
wie ich vermutete ... Du nutzt .setString( wert ) ... probiere .setValue( wert ) - und analog auch .getValue(), also

Code: Alles auswählen

oInvoiceSheet.getCellByPosition(ColumnIDataTotalAmount,LineIDataMWST7).setValue(oBills.getCellByPosition(iSourceColumnCounter,iSourceLineCounter ).getValue())

Klappt es nun?

Re: Calc Makro: Kopierte Daten werden nicht berechnet

Verfasst: Fr, 03.07.2009 12:52
von Peter_K
Oh sh...!
Das isses!
Sorry für den delay, musste nur kurz weg.
Vielen Dank -komma4- für den Tip (hätte ich auch selbst drauf kommen müssen... :( )