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

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

Moderator: Moderatoren

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

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

Beitrag von Postbyme »

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.
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Währungsfeld wie richtig überschreiben

Beitrag von Stephan »

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
Postbyme
***
Beiträge: 90
Registriert: Mo, 27.11.2017 18:42

[solved] Währungsfeld wie richtig überschreiben

Beitrag von Postbyme »

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!!
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Währungsfeld wie richtig überschreiben

Beitrag von Stephan »

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: 90
Registriert: Mo, 27.11.2017 18:42

Re: Währungsfeld wie richtig überschreiben

Beitrag von Postbyme »

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
-------------------------------------------------------
Windows 11 22H2 /Libre Office 7.3.6.2 (x64)
Antworten