Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zahl in Betrag in Worten umwandeln

Zahl in Betrag in Worten umwandeln
03.02.2008 10:00:47
Max
hallo ihr EXCEL-Freaks,
drucke Schecks / Wechsel aus. Die notwendigen Angaben befinden sich in einem EXCEL-Blatt. Dort sind alle Angaben wie Empfänger, Ausstellungsdatum, Ort, Betreff, Aussteller, Adresse etc. gespeichert. Per Makro werden dann alle Schecks / Wechsel ausgedruckt. Der Betrag in Worten muss als einziges jeweils manuell eingegeben werden.
Das gleiche gilt auch für Überweisungsvordrucke (allerdings dort ohne Angabe des Betrages in Worten).
Suche eine Möglichkeit alternativ über Formel bzw. benutzerdefinierte Funktion den Betrag in Worten aus dem Feld Betrag_in_EURO zu erhalten.
Wäre toll, wenn ihr mir weiterhelfen könntet.
Gruss Max Berg

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: http://www.excelformeln.de/tips.html?welcher=3
03.02.2008 10:23:00
Max
Hallo Matthias L,
Die Seite wurde nicht gefunden
Liegt dies an mir ?
Gruss Max

nimm den Link von Hajo, der funktioniert __oT
03.02.2008 10:34:00
Hajo,

AW: http://www.excelformeln.de/tips.html?welcher=3
03.02.2008 10:35:32
Hajo_Zi
Hallo Max,
das ist mir auch nicht klat. Suche auf dieser Seite nach Wort
http://www.excelformeln.de/suche.html
Gruß Hajo

Anzeige
benutzerdefinierte Funktion für mehrere Sprachen
03.02.2008 10:44:00
Max
Hallo Hajo_Zi,
danke das sieht ja schon mal super aus.
Trotzdem wäre es wahnsinnig toll, wenn man das ganze in eine benutzerdefinierte Funktion einpacken könnte, wobei ein Argument die Sprache wäre, in der der Betrag in Worten gebraucht wird.
Bin ja erst seit einigen Tagen im Internet und seit 4 Tagen erstmals in einem Forum. Bin ganz begeistert über die Qualität und Schnelligkeit der Antworten. Schade, dass ich mich solange gegen das Internet gewehrt habe. Hätte mir wahnsinnig viel Arbeit ersparen können.
Mit bestem Gruss an dich und alle Forumsfreunde
Gruss Max Berg

Anzeige
AW: benutzerdefinierte Funktion für mehrere Sprachen
03.02.2008 11:17:00
Hajo_Zi
Hallo Max,
eine Funktion ist VBA und so eine Lösung wirst Du auf der Seite kaum finden. Was spricht gegen die Lösung, es wird die Sprache doch auch angegeben?
Gruß Hajo

AW: benutzerdefinierte Funktion für mehrere Sprach
03.02.2008 13:57:14
Max
Hallo Hajo,
ich brauche den Betrag in Worten in einem Blatt in mehreren Zellen.
Spalte B Spalte C Spalte D Spalte E
EURO Betrag in Worten Betrag in Worten Betrag in Worten
Deutsch Englisch Französisch
10 zehn ten dix
200 zweihundert twohundred deuxcent
2.500 zweitausendfünfhundert twothousandfivehundred deuxmillescinqcent
Muss es leider so primitiv darstellen, denke dass ich mal "Jeanie Html" studieren muss. Meinst du, das wäre sinnvoll?
Ich verwende zur Zeit noch 3 Formeln (für deutsch, englisch und französisch)v, von denenich eine der Zelle zuweise. In dieser Zelle steht die Formel für die jeweilige Landessprache. Diese wiederum enthält jede Menge Namen, der wiederum Formeln zugewiesen sind. Damals hatte ich eine Woche lang daran gebastelt und war ganz stolz. Heute würde ich das aber sicher eleganter machen, mir fehlt nur die Zeit, außerdem funktionierts ja.
Nur eleganter und für meine Mitarbeiter verständlicher wäre eine benutzerdefinierte Funktion.
Übrigens sieht die Formel für deutsch folgendermaßen aus:
=WENN(GANZZAHL(Z_/10^6) 999;" G r ö ß e n w a h n s i n n i g ? ";WENN(Z_M=1;"eine Million";~f~
~f~SVERWEIS(KÜRZEN(Z_M/100;0);Z_V;5)&WENN(REST(Z_M;100)=1;"eine";~f~
~f~WENN(UND(REST(Z_M;100) 9;REST(Z_M;100) 20);SVERWEIS(REST(Z_M;10);Z_V;3);~f~
~f~SVERWEIS(REST(Z_M;10);Z_V;2))&WENN(UND(REST(Z_M;10) 0;REST(Z_M;100) 20);"und";"")~f~
~f~)&Z_J&WENN(Z_M 1;" Millionen~f~ ~f~";""))&SVERWEIS(KÜRZEN(Z_T/100;0);Z_V;5)&WENN(REST(Z_T;100)=1~f~
~f~;"ein";WENN(UND(REST(Z_T;100) 9;REST(Z_T;100) 20);SVERWEIS(REST(Z_T;10);Z_V;3);~f~
~f~SVERWEIS(REST(Z_T;10);Z_V;2))&WENN(UND(REST(Z_T;10)>0;REST(Z_T;100) 20);"und";""))~f~
~f~&Z_Z&WENN(Z_T~f~
~f~=1;"tausend";"")&SVERWEIS(KÜRZEN(Z_E/100;0);Z_V;5)&WENN(REST(Z_E;100)=1;~f~
~f~"eins";Z_X)&Z_Y)&" DM"~f~
Das kann ja keine Sau verstehen und ich kanns heute auch nicht mehr nachvollziehen.
Zur kompletten Verwirrung hier noch einige von 13 Unter-Nahmen, denen ich Formeln zugewiesen habe.
Hier eine Auswahl:
Z_=DRUCK!$AN$12
Z_E=RUNDEN(REST(KÜRZEN(RUNDEN(DRUCK!Z_;2);0);10^3)/10^0;0)
Z_J=WENN(REST(DRUCK!Z_M;100) 19;SVERWEIS(REST(DRUCK!Z_M;100)/10;DRUCK!Z_V;4);"")
Z_M=RUNDEN(REST(KÜRZEN(RUNDEN(DRUCK!Z_;2);-6);10^9)/10^6;0)
Z_T=RUNDEN(REST(KÜRZEN(RUNDEN(DRUCK!Z_;2);-3);10^6)/10^3;0)
~f~Z_X=WENN(UND(REST(DRUCK!Z_E;100)>9;REST(DRUCK!Z_E;100)<20);SVERWEIS(REST(DRUCK!Z_E;10);DRUCK!Z_V;3);SVERWEIS(REST(DRUCK!Z_E;10);DRUCK!Z_V;2))&WENN(UND(REST(DRUCK!Z_E;10)>0;REST(DRUCK!Z_E;100)>20);"und";"")~f~
~f~Z_Y=WENN(REST(DRUCK!Z_E;100)>19;SVERWEIS(REST(DRUCK!Z_E;100)/10;DRUCK!Z_V;4);"")
Irgendwie habe ich den Eindruck, dass der ganze Käse hier für ein Forum unpassen ist. Da ich im Forum nach erst 4 Tagen noch ziemlich unerfahren bin, wäre ich über einen Kommentar hierzu dankbar. Ich bin für eine ehrliche, sachliche Antwort dankbar und bestimmt nicht böse.
Gruss und noch einen schönen Sonntag wünscht
Max Berg
P.S. Beim klicken auf die Vorschau kam ein Hinweis, dass html Grösser oder kleiner - Zeichen nicht unterstützt. Sorry ;-(
Tut mir leid ich machs in dieser Form im Forum ganz bestimmt nicht wieder.

Anzeige
AW: benutzerdefinierte Funktion für mehrere Sprach
03.02.2008 14:11:00
Nepumuk
Hallo Max,
hier mal eine Funktion dazu. Allerdings nur in deutsch. Aber mit "VBA gut" solltest du dir das schon hinbiegen können.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Function ZahlWort(dblZahl As Double, Optional bolArt As Variant) As String
    Dim arrArt As Variant
    Dim intCounter As Integer, intCts As Integer
    Dim strWert As String, strTmp As String, strSuffix As String
    On Error Resume Next
    If bolArt = 1 Then
        If Err = 0 Then
            intCts = (dblZahl - Fix(dblZahl)) * 100
            If intCts <> 0 Then strSuffix = " " & Format(CStr(intCts), "00") & "/100"
        Else
            bolArt = 0
        End If
    End If
    On Error GoTo 0
    dblZahl = Fix(dblZahl)
    strTmp = Right$(CStr(dblZahl), 3)
    strWert = Part(strTmp)
    For intCounter = 1 To 4
        strTmp = CStr(dblZahl)
        Select Case Len(strTmp)
            Case Is < 1 + 3 * intCounter
                ZahlWort = strWert & strSuffix
                Exit Function
            Case Is < 4 + 3 * intCounter
                strTmp = Left$(strTmp, Len(strTmp) - intCounter * 3)
            Case Else
                strTmp = Left$(Right$(strTmp, 3 + intCounter * 3), 3)
        End Select
        Select Case intCounter
            Case 1: arrArt = Array("tausend", "eintausend")
            Case 2: arrArt = Array("millionen", "einemillion")
            Case 3: arrArt = Array("milliarden", "einemillarde")
            Case 4: arrArt = Array("billionen", "einebillion")
        End Select
        If Right$(CStr(dblZahl), 3) = "000" Then
            strWert = Part(strTmp) & arrArt(0)
        ElseIf Cint(strTmp) = 1 Then
            strWert = arrArt(1) & strWert
        Else
            strWert = Part(strTmp) & arrArt(0) & strWert
        End If
    Next intCounter
    ZahlWort = strWert & strSuffix
End Function

Private Function Part(strPart As String) As String
    Dim arrA As Variant, arrB As Variant, arrC As Variant
    Dim strTmp As String
    arrA = Array("null", "eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun")
    arrB = Array("elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn")
    arrC = Array("zehn", "zwanzig", "dreißig", "vierzig", "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig")
    If Len(strPart) = 1 Then
        strTmp = arrA(Cint(Right$(strPart, 1)))
    ElseIf Right$(strPart, 2) = "00" Then
        If Left$(strPart, 1) = "1" Then
            Part = "einhundert"
        Else
            Part = arrA(Cint(Left$(strPart, 1))) & "hundert"
        End If
        Exit Function
    ElseIf Mid$(strPart, Len(strPart) - 1, 1) = "0" Then
        strTmp = arrA(Cint(Right$(strPart, 1)))
    ElseIf Mid$(strPart, Len(strPart) - 1, 1) = "1" Then
        If Cint(Right$(strPart, 1)) <> 0 Then
            strTmp = arrB(Cint(Right$(strPart, 2)) - 11)
        Else
            strTmp = arrC(Cint(Mid$(strPart, Len(strPart) - 1, 1)) - 1)
        End If
    ElseIf Cint(Mid$(strPart, Len(strPart) - 1, 1)) > 1 Then
        Select Case Right$(strPart, 1)
            Case "0"
                strTmp = arrC(Cint(Mid$(strPart, Len(strPart) - 1, 1)) - 1)
            Case "1"
                strTmp = "einund" & _
                    arrC(Cint(Mid$(strPart, Len(strPart) - 1, 1)) - 1)
            Case Else
                strTmp = arrA(Cint(Right$(strPart, 1))) & "und" & _
                    arrC(Cint(Mid$(strPart, Len(strPart) - 1, 1)) - 1)
        End Select
    End If
    If Len(strPart) = 3 Then
        Select Case Left$(strPart, 1)
            Case "0"
            Case "1"
                strTmp = "einhundert" & strTmp
            Case Else
                strTmp = arrA(Cint(Left$(strPart, 1))) & "hundert" & strTmp
        End Select
    End If
    Part = strTmp
End Function

In der Tabelle dann so:
 AB
1  2.277,34 € zweitausendzweihundertsiebenundsiebzig 34/100
2       22,00 € zweiundzwanzig
3       33,70 € dreiunddreißig 70/100
4            -   € null
5  1.111,00 € eintausendeinhundertelf
6  1.984,00 € eintausendneunhundertvierundachtzig
7  2.003,00 € zweitausenddrei

Formeln der Tabelle
ZelleFormel
B1=WENN(ISTZAHL(A1); zahlwort(A1;1); "")
B2=WENN(ISTZAHL(A2); zahlwort(A2;1); "")
B3=WENN(ISTZAHL(A3); zahlwort(A3;1); "")
B4=WENN(ISTZAHL(A4); zahlwort(A4;1); "")
B5=WENN(ISTZAHL(A5); zahlwort(A5;1); "")
B6=WENN(ISTZAHL(A6); zahlwort(A6;1); "")
B7=WENN(ISTZAHL(A7); zahlwort(A7;1); "")

Gruß
Nepumuk

Anzeige
AW: benutzerdefinierte Funktion für mehrere Sprach
03.02.2008 15:18:00
Max
Hallo Nepumuk,
tausend Dank! Sieht wirklich super aus (mein Kompliment und meinen Respekt).
Hab allerdings noch Probleme. Die Formel liefert in Spalte 'B' liefert im Moment noch '#NAME?'.
Das liegt daran dass ich beim Einfügen der benutzterdefinierten Funktionen
die Funktion 'Ein_Kulturschaffender.htm!ZahlWort' angezeigt bekomme.
Ich habe heute mal versucht eine Bildschirmkopie unter dem Namen
'Ein_Kulturschaffender.htm!ZahlWort' abzuspeichern. Ich werde daher später dein Makro und das EXCEL-Blatt in eine neuen Datei reinzubringen. Ein benutzerdefinierte Funktion von mir klappt jetzt auch nicht mehr.
Im Moment brauche ich aber eine grosse Pause. Bin erschlagen von dem Ganzen!
Wäre froh, wenn ich das im Forum so darstellen könnte wie du. Ich nehme an du hast mit Jeanie-html (oder wie das heisst) gearbeitet.
Würde mich gerne revanchieren, aber ich glaube so einem Profi wie dir (für mich bist du z.Zt. ein Genie) kann ich EXCEL-mäßig nichts beibringen.
Habe jetzt gerade mal nach den vielen heutigen Beiträgen von dir nachgesehen. Was das Problem SAP-Listen nach EXCEL zu transportieren habe ich Erfahrungen bis zum Excess. Ich musste zwar mit SAP arbeiten, die Konzernzentrale hat mir aber keine Rechte gegeben, so habe ich mir die aufwendigsten Listen nach EXCEL heruntergeladen und per Makro abgearbeitet. Dabei habe ich per Makro den einzelnen Bereich Namen pro Blatt für jeden Bereich gegeben. Das hat alles super funktioniert. Durfte nur keiner wissen, wie ich SAP vergewaltigt/überlistet habe.
Ich glaube aber, dass sowas nicht ins Forum gehört, weil das kein Mensch versteht und ich übers Forum gar nicht alles erklären kann.
Nochmals vielen Dank
Gruss Max Berg
P.S. Werde deine Beiträge künftig mit Interesse verfolgen. Deinen Nick kann man sich ja leicht merken. :-)

Anzeige
Das machst Du schon richtig...
05.02.2008 15:04:06
{Boris}
Hi Max,
P.S. Werde deine [Nepumuks] Beiträge künftig mit Interesse verfolgen.
Damit triffst Du eine weise Entscheidung. VBA-Beiträge mit mehr Qualitätsgehalt gibt´s hier nämlich nicht (gilt auch für K.Rola und Sepp).
Grüße Boris

260 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige