Zahl in Text umwandeln für Spendenbescheinigung

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

Moderator: Moderatoren

homerj
Beiträge: 4
Registriert: Mi, 16.09.2015 17:13

Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von homerj »

Hallo,

ich habe mich bislang noch nie mit Makro-Programierung beschäftigt. Ich möchte gern per Makro in Calc (ich nutze Version 4.0.1) Zahlen (bzw. Beträge) in Worte umwandeln. Hier viewtopic.php?f=2&t=11520 habe ich im Prinzip das gefunden, was ich suche. Wenn ich allerdings z.B. diese Funktion von Karo...

Code: Alles auswählen

function SchreibZifferfolge(n)as string
dim schrZiffer
dim s as string
schrZiffer() = Array ("null","eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun")
for i = 1 to len(n)
s = s & schrZiffer(mid(n,i,1)) & "-"
next
schreibzifferfolge = left(s,len(s)-1)
End function
.. über den Aufruf

Code: Alles auswählen

SCHREIBZIFFERFOLGE(A1)
aufrufe, erscheint im entsprechenden Feld lediglich...

Code: Alles auswählen

#WERT!
Als Test habe ich einfach mal als Makro dieses gespeichert...

Code: Alles auswählen

REM  *****  BASIC  *****
Function test(ByVal n) As String

If (n = 5) Then
	test = "fünf"
End If	

If (n > 5) Then
	test = "mehr als 5"
End If

If (n < 5) Then
	test = "weniger als 5"
End If

End Function
... das funktioniert über den Aufruf

Code: Alles auswählen

=TEST(A1)
Hat jemand eine Idee, was ich falsch mache? Vielen Dank!!
nikki
******
Beiträge: 787
Registriert: Do, 05.03.2015 10:42

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von nikki »

Hallo,
der Macrocode von Karolus funktioniert. Was Du dabei falsch machst ist mir leider nicht bekannt.
Gruß

---------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von F3K Total »

Hi,
ich möchte dir noch diesen Beitrag empfehlen, ursprüngliche Codes von Andrew Pitonyak, die können nämlich folgendes:
ZAHL_IN_WORT.PNG
ZAHL_IN_WORT.PNG (6.49 KiB) 4422 mal betrachtet
Gruß R
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von Karolus »

Hallo

Inzwischen gibts dafür Numbertext

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
homerj
Beiträge: 4
Registriert: Mi, 16.09.2015 17:13

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von homerj »

F3K Total hat geschrieben:Hi,
ich möchte dir noch diesen Beitrag empfehlen, ursprüngliche Codes von Andrew Pitonyak, die können nämlich folgendes:
ZAHL_IN_WORT.PNG
Gruß R
Hallo Karolus,

genau diesen Beitrag hatte ich ja selber als Link angegeben. Da das direkt mit dem ersten Script von dir...

Code: Alles auswählen

function SchreibZifferfolge(n)as string
dim schrZiffer
dim s as string
schrZiffer() = Array ("null","eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun")
for i = 1 to len(n)
s = s & schrZiffer(mid(n,i,1)) & "-"
next
schreibzifferfolge = left(s,len(s)-1)
End function
...schon nicht funktioniert, habe ich die anderen nur kurz mit dem gleichen Ergebnis ausprobiert. Ich weiss nicht, was ich falsch mache. Ich habe das folgendermassen gemacht:
  • Extras > Makros > Dialoge verwalten
  • Bibliotheken > Neu > Name eintragen und dann speichern
  • Module > Bibliothek auswählen > neues Modul anlegen > Name speichern
  • Neues Modul bearbeiten
  • "Quelltext" in den Bereich zwischen "Sub Main" und "End Sub" kopieren und dann speichern
  • Dann so wie im nachfolgenden Bild-Link ersichtlich eine Zahl ins Feld A1 eingetragen und in anderes Feld "=SchreibZifferfolge(A1)" eingetragen und dann auf Enter gedrückt
http://pasteboard.co/HIoVv3u.png

Vielen Dank!!
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von gschuckar »

Moin homerj,
habs gerade mal nachvolzogen, Ergebniss: Funktioniert.
homerj hat geschrieben: [*] "Quelltext" in den Bereich zwischen "Sub Main" und "End Sub" kopieren und dann speichern
Und das ist der Fehler. Nicht zwischen den Bereich Sub Main und End sub kopieren sondern überschreiben.
Sonst findet OpenOffice die Function schreibzifferfolge nicht, weil: Es gibt sie nicht. Es gibt sub main. Das ist aber keine Function.

Also: jetzt einfach die Zeilen sub main und end sub löschen. Dann sollte es gehen.
Gruß
Gerd
homerj
Beiträge: 4
Registriert: Mi, 16.09.2015 17:13

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von homerj »

Hallo Gerd,
Und das ist der Fehler. Nicht zwischen den Bereich Sub Main und End sub kopieren sondern überschreiben.
Genau, jetzt klappt es endlich. :D Super. Vielen Dank!!

Hat jemand vielleicht das Script schon dahingehend erweitert, dass auch Cent-Beträge (so in der Art "Fünfzehn 25/100" für EUR 15,25) ausgegeben werden?
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von Karolus »

homerj hat geschrieben: Hat jemand vielleicht das Script schon dahingehend erweitert, dass auch Cent-Beträge (so in der Art "Fünfzehn 25/100" für EUR 15,25) ausgegeben werden?
Hast du dir vielleicht schon die "Mühe" gemacht nachzuschauen was "hinter" dem von mir nachgereichten Link steckt ??

Code: Alles auswählen

= ... &TEXT(REST(A1;1);"??/100")
Zuletzt geändert von Karolus am Do, 17.09.2015 17:52, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
homerj
Beiträge: 4
Registriert: Mi, 16.09.2015 17:13

Re: Zahl in Text umwandeln für Spendenbescheinigung

Beitrag von homerj »

Hallo Karo,
Hast du dir vielleicht schon die "Mühe" gemacht nachzuschauen was "hinter" dem von mir nachgereichten Link steckt ??
Ja, ich habe mir das kurz angeschaut - zumindest soweit möglich, da ich momentan nur Zugriff über einen Rechner in einem geschützen Firmennetzwerk, also ohne Downloadmöglichkeit habe. Kann das also im Moment nicht testen.
Ich frage auch deswegen nach, weil selbst für dieses "kleine Addon" ein innerbetrieblicher Software-Freigabeprozess durchlaufen werden müsste, den ich möglichst vermeiden möchte. Über eine Anpassung des Makros wäre dies denke ich nicht notwendig.

Vielen vielen Dank nochmal für deine Unterstützung!
Antworten