[gelöst]Währungsfeld wie richtig überschreiben

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Postbyme
**
Beiträge: 44
Registriert: Mo, 27.11.2017 18:42

[gelöst]Währungsfeld wie richtig überschreiben

Beitrag von Postbyme » So, 28.01.2018 20:00

Hallo Leute,
ich habe ein Tabellenfeld welches als Währungsfeld definiert ist (Währung -1.234,00 €), welches schon einen vorbelegten Wert in der Form 39,00 € hat, und welches ich nun mit folgendem Code mit einem anderen Betrag überschreiben möchte:

Code: Alles auswählen

Sub uf_bpos_schreiben(li_bpanz%,li_bplge%,li_epreis@)
myDoc = thisComponent
tabelle1 = myDoc.sheets(0)
dim mycell as object
.....
...
mycell = tabelle1.getCellByPosition(3,gi_gesanzbpos + 17)
mycell.value = li_epreis

end sub
Das Makro weigert sich jetzt den Wert zu schreiben :shock: . Wie könnte ich jetzt den Betrag in der Form 45,00 € in dieses Feld schreiben?

Über einen Tipp würde ich mich freuen.

Vielen Dank
Gruss Winni
Zuletzt geändert von Postbyme am So, 08.04.2018 22:00, insgesamt 1-mal geändert.

Stephan
********
Beiträge: 10591
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Währungsfeld wie richtig überschreiben

Beitrag von Stephan » So, 28.01.2018 20:45

ich habe ein Tabellenfeld welches als Währungsfeld definiert ist
Dein Makro bezieht sich aber auf eine Tabellenzelle und kein Währungsfeld (Währungsfeld siehe: Ansicht-Symbolleisten-Formularsteuerelemente und dort das Währungsfeld).
Das Makro weigert sich jetzt den Wert zu schreiben
Und wie äußert sich das? Fehlermeldung? Absturz? ...?
Wie könnte ich jetzt den Betrag in der Form 45,00 € in dieses Feld schreiben?
beispielsweise:

Code: Alles auswählen

Sub uf_bpos_schreiben()
myDoc = thisComponent
tabelle1 = myDoc.sheets(0)
dim mycell as object

gi_gesanzbpos = 2

mycell = tabelle1.getCellByPosition(3,gi_gesanzbpos + 17)
mycell.value = 45.00

end sub
Gruß
Stephan

Gast

Re: Währungsfeld wie richtig überschreiben

Beitrag von Gast » So, 28.01.2018 23:15

Hallo Stephan
Und wie äußert sich das? Fehlermeldung? Absturz? ...?
Feld wird einfach nicht geschrieben, kein Fehler, kein Absturz.

Danke für Dein Besispiel aber ich möchte keinen konstanten Wert 45.00 scheiben sondern den Inhalt der Variablen li_epreis die den Inhalt 45.0000 hat.
In der Tabellenzelle soll dann 45,00 € stehen.

Die Zelle ist so formatiert: #.##0,00 [$€];[ROT]-#.##0,00 [$€]

Muss ich jetzt mit mycell.value oder . text schreiben?

Nicht einmal

Code: Alles auswählen

ls_betrag = "" + li_epreis + ",00" + " €"
mycell.value = ls_betrag
schreibt er.

Postbyme
**
Beiträge: 44
Registriert: Mo, 27.11.2017 18:42

[solved] Währungsfeld wie richtig überschreiben

Beitrag von Postbyme » Mo, 29.01.2018 00:12

Hallo,
großer Fehler von mir! Durch zwei verbundene Zellen habe ich eine Spalte beschrieben die es gar nicht gibt!
Hat jetzt alles geklappt - wenn ich eine Integerzahl in die vor-formatierte Zelle schreibe wird die Formatierung angewendet.

Danke nochmals für die Unterstützung

Gruß
Winni


PS:Wenn man antwortet und nicht merkt, dass man schon rausgefallen ist, dann erscheint der Beitrag unter "Gast". Nicht so toll!!

Stephan
********
Beiträge: 10591
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Währungsfeld wie richtig überschreiben

Beitrag von Stephan » Mo, 29.01.2018 05:34

großer Fehler von mir! Durch zwei verbundene Zellen habe ich eine Spalte beschrieben die es gar nicht gibt!
Nein, das kann nicht stimmen.

OO/LO Calc behandeln verbundene Zellen völlig anders als z.B. MS Excel und zwar in der Form das nach dem Verbinden nicht sichtbare Zellen sehr wohl vorhanden sind, als auch Inhalte enthalten können. Somit lassen sich Inhalte in solchen Zellen auch per Makro ändern.

Beispiel:
Die Zellen A1 und B1 enthielten zwei Zahlenwerte und werden markiert und verbunden, hierbei erscheint eine Nachfrage ob der Inhalt der zweiten Zelle in die Erste verschoben werden soll.
Egal ob Letzteres bejaht wird oder nicht, ist nach dem Verbinden nur Zelle A1 sichtbar, jedoch kann auch der Inhalt von Zelle B1 per Makro geändert werden und ist später, nach dem Wiederauflösen der Verbindung der Zellen, in Zelle B1 sichtbar.


Gruß
Stephan

Postbyme
**
Beiträge: 44
Registriert: Mo, 27.11.2017 18:42

Re: Währungsfeld wie richtig überschreiben

Beitrag von Postbyme » Mo, 29.01.2018 22:08

Hallo,
ah gut zu wissen, dass die Zelle B1 ihren Wert behält und auch änderbar ist. Kleines Versteck um z.B. Hilfsdaten zu speichern :-)
Für mich war es jedoch unglücklich da ich ja im Versehen B1 statt C1 beschrieben hatte und somit nichts gesehen habe.

Gruss

Antworten