Spendenquittung mit Excel/word

Von: , 24.02.2011 08:57 Uhr


Hallo ihr Profis,

ich habe da mal eine kniffelige Frage:

Ich habe eine Excel-Liste mit ca. 300 Spendern, die eine Spendenquittung benötigen.

Die Liste enthält: Name, Anschrift und Betrag in Zahlen.

Gibt es eine Möglichkeit, eine Art von Serienbrief zu gestalten, der nciht nur Name und Adresse von Excel nach Word transferriert, sondern auch den Spendenbetrag in ein vorher definiertes Feld in dem brief überträgt?

Und jetzt noch kniffeliger: Der numerische Spendenbetrag muss auch leider zwingend ausgeschrieben (speich EUR 815,00 = Achthundertfünfzig) werden. Geht so etwas?

Die Beträge sind meistens gleich, also meist runde Summen.

Kann mir da jemand einen Tipp geben?

Vielen Dank im Voraus

Sven

6 Antworten zu dieser Frage

  1. Antwort von nach 2 Stunden 0 hilfreich
    Re: Spendenquittung mit Excel/word

    Hallo Sven,

    zu Deinem Problem: Am einfachsten gestaltet sich die Sache, wenn Du die Exceltabelle in Access einfügst und jeden Spendenbeleg als Report ausgeben lässt.
    In der Abfrage muss dann z.B. die Lfd-Nr enthalten sein, damit Du nur einen Beleg hast (sonst hast Du alle als Report)
    Zu der Ausschreibung des numerischen Betrags...hmm ganz spontan fällt mir da nichts ein, wie man das vom Rechner ausschreiben lassen kann.
    Hier zwei Ideen
    (1) Du könntest zur Not ein weiteres Feld einfügen und die Beträge aussschreiben. Nimmt ein bisschen Zeit in Anspruch.
    (2) Du bastelst Dir z.B. eine Abfrage in dem Du Stellen der Zahlen abfragst. Zuerst ermittelst Du die Zeichenlänge und dann gehst Du an die erste Stelle. Wenn an der ersten Stelle eine 1 steht, dann hundert, jetzt gehts an die zweite Stelle. Wenn an der zweiten Stelle eine 2 steht, dann zwanzig...usw. bis alle Stellen abgearbeitet sind. Zeichenlänge vorher mit len ermitteln.
    So könnest Du Dir die 120 zusammenbasteln. Man könnte sowas über eine if-Abfrage gestalten und diese immer weiter verzweigen. Um die if-Abfrage könntest Du eine do-schleife legen, welche die Zeichenlänge enthält.
    Du brauchst etwas VBA Kenntnisse dafür.
    Ich hoffe, ich konnte Dir ein wenig weiterhelfen.

    MfG.
    D. Rath

  2. Antwort von nach einem Tag 0 hilfreich
    Re: Spendenquittung mit Excel/word

    Hi,
    ich kann es leider nicht beantworten. Allerdings dürfte es Word recht egal sein, was eingelesen wird. Also ob es ein Name ist oder eine Zahl spielt keine Rolle. Ich wünsche viel Erfolg beim Erstellen. Schönes WE

  3. Antwort von nach 6 Tagen 0 hilfreich
    Re: Serienbrief Excel/word, Zahlen als Langtext

    Hallo Sven

    wegen Krankheit hier meine Antwort etwas verspätet. Die Liste enthält: Name, Anschrift und Betrag in Zahlen.


    Gibt es eine Möglichkeit, eine Art von Serienbrief zu
    gestalten, der nciht nur Name und Adresse von Excel nach Word
    transferriert, sondern auch den Spendenbetrag in ein vorher
    definiertes Feld in dem brief überträgt?


    Und jetzt noch kniffeliger: Der numerische Spendenbetrag muss
    auch leider zwingend ausgeschrieben (speich EUR 815,00 =
    Achthundertfünfzig) werden. Geht so etwas?

    Du kannst in deiner Exceltabelle in weiteren Spalten auch die Beträge so aufbereiten, wie du sie im Word-Serienbrief darstellen möchtest. Die einfache Darstellung des Betrags geht mit der Funktion TEXT
    z.B., wenn Betrag in Zelle D2 seht:
    ="EUR " & TEXT(D2;"#.##0,00")

    Den Langtext des Betrags kann man mit Excelstandard-Funktionen nur mit vielen Hilfsspalten ermitteln, da bei der Schreibweise etliche Sonderfälle berücksichtigt werden müssen.
    Übersichtlicher wird die Verwendung einer benutzerdefinierten Funktion. Den nachfolgenden Code muss du im VBA-Editor in ein allgemeines Modul der Datei kopieren. Anschliessend kannst du die Funktion "ZahlZuText", wie andere Excelfunktionen in Formeln verwenden. z.B:
    =ZahlZuText(D2)

    Im Code muss du ggf. die Berechnung der Variablen sW1 und sW2 ein wenig anpassen, damit die Ausgabe des Zahl-Textes in der gewünschten Form erfolgt.

    Gruß
    Franz

    Function ZahlZuText(Zahl As Double, Optional Waehrung As String = "EUR", _
    Optional Waehrung2 As String = "CENT", _
    Optional strFormat As String = "0.00") As String
    'wandelt ein Zahlen bis 999.999.999.999,99 in Zahlen-Text
    'Zahl = als Langtext auszugebende Zahl
    'Waehrung = Währungskürzel/-zeichen
    'Waehrung2 = Währungskürzel/-zeichen für untereinheit der Währung
    'strFormat = Zahlenformat nach dem die Zahl auszuwerten und auszugen ist _
    Hat die Zahl mehr Nachkommastellen als das Format, dann wird _
    der Ausgabewert gerundet.
    Dim iI As Long, Anz1000er As Long, l_Zahl As Long
    Dim sW1 As String, sW2 As String, sZahl As String
    Zahl = CDbl(Format(Zahl, strFormat))
    If Zahl = 0 Then
    sW1 = "null"
    Else
    'Vorkommazahl in Text umwandeln
    'Anzahl der 3er-Gruppen in Zahl (1000er, Mio, Mrd)
    Anz1000er = Int(Log(Zahl) / Log(10) / 3)
    'ganze Zahl als Text mit führenden Nullen
    sZahl = Format(Int(Zahl), "000000000000")
    'Ziffern der Zahl in 3er-Gruppen abarbeiten
    For iI = Anz1000er To 0 Step -1
    l_Zahl = CLng(Left(Right(sZahl, (iI + 1) * 3), 3))
    Select Case iI
    Case 0 ' Ziffern - Einer
    sW1 = sW1 & Text999(lZahl:=l_Zahl)
    Case 1 ' Ziffern - Tausend
    If l_Zahl > 0 Then
    sW1 = sW1 & Text999(lZahl:=l_Zahl, b1000:=True) & "tausend"
    End If
    Case 2 ' Ziffern - Millionen
    If l_Zahl > 0 Then
    If l_Zahl = 1 Then
    sW1 = sW1 & Text999(lZahl:=l_Zahl, bMio:=True) & "million"
    Else
    sW1 = sW1 & Text999(lZahl:=l_Zahl, bMio:=True) & "millionen"
    End If
    End If
    Case 3 ' Ziffern - Milliarden
    If l_Zahl > 0 Then
    If l_Zahl = 1 Then
    sW1 = sW1 & Text999(lZahl:=l_Zahl, bMio:=True) & "milliarde"
    Else
    sW1 = sW1 & Text999(lZahl:=l_Zahl, bMio:=True) & "milliarden"
    End If
    End If
    End Select
    Next
    End If
    sW1 = UCase(Left(sW1, 1)) & Mid(sW1, 2)
    sW1 = sW1 & " " & Waehrung
    'Nachkommazahl in Text umwandeln
    If Zahl - Int(Zahl) > 0 Then
    sW2 = Text999((Zahl - Int(Zahl)) * 10 ^ Len(Mid(strFormat, InStr(1, strFormat, ".") + 1)))
    sW2 = UCase(Left(sW2, 1)) & Mid(sW2, 2)
    sW2 = " und " & sW2 & " " & Waehrung2
    Else
    sW2 = ""
    End If
    'Ausgabetext erzeugen
    ZahlZuText = sW1 & sW2
    End Function
    Private Function Text999(lZahl As Long, Optional bMio As Boolean, _
    Optional b1000 As Boolean) As String
    'Wandelt eine Zahl von 0 bis 999 in Text mit Sonderauswertungen für die Zahlen 0 und 1
    Dim Ziffer As String
    If lZahl = 0 Then
    Text999 = ""
    ElseIf lZahl = 1 And bMio = True Then
    Text999 = "eine"
    ElseIf lZahl = 1 And b1000 = True Then
    Text999 = "ein"
    Else
    If lZahl > 99 Then
    Ziffer = ""
    Select Case Left(Format(lZahl, 0), 1)
    Case "1":   Ziffer = "ein"
    Case "2":   Ziffer = "zwei"
    Case "3":   Ziffer = "drei"
    Case "4":   Ziffer = "vier"
    Case "5":   Ziffer = "fünf"
    Case "6":   Ziffer = "sechs"
    Case "7":   Ziffer = "sieben"
    Case "8":   Ziffer = "acht"
    Case "9":   Ziffer = "neun"
    End Select
    Text999 = Ziffer & "hundert"
    End If
    '100er-Stelle vorne abschneiden
    lZahl = lZahl Mod 100
    Ziffer = ""
    'Zahlen 0 bis 99 auswerten
    Select Case lZahl
    Case Is >= 90:    Ziffer = Text10er(lZahl) & "neunzig"
    Case Is >= 80:    Ziffer = Text10er(lZahl) & "achtzig"
    Case Is >= 70:    Ziffer = Text10er(lZahl) & "siebzig"
    Case Is >= 60:    Ziffer = Text10er(lZahl) & "sechzig"
    Case Is >= 50:    Ziffer = Text10er(lZahl) & "fünfzig"
    Case Is >= 40:    Ziffer = Text10er(lZahl) & "vierzig"
    Case Is >= 30:    Ziffer = Text10er(lZahl) & "dreißig"
    Case Is >= 20:    Ziffer = Text10er(lZahl) & "zwanzig"
    Case Is >= 13:    Ziffer = Text10er(lZahl) & "zehn"
    Case 12:  Ziffer = "zwölf"
    Case 11:  Ziffer = "elf"
    Case 10:  Ziffer = "zehn"
    Case 9:   Ziffer = "neun"
    Case 8:   Ziffer = "acht"
    Case 7:   Ziffer = "sieben"
    Case 6:   Ziffer = "sechs"
    Case 5:   Ziffer = "fünf"
    Case 4:   Ziffer = "vier"
    Case 3:   Ziffer = "drei"
    Case 2:   Ziffer = "zwei"
    Case 1:   Ziffer = "eins"
    Case 0:   Ziffer = ""
    End Select
    Text999 = Text999 & Ziffer
    End If
    End Function
    Private Function Text10er(lZahl) As String
    'Teiltext der Zahlen 13 bis 99 ermitteln
    If lZahl Mod 10 = 0 Then
    Text10er = ""
    Else
    Select Case lZahl Mod 10
    Case 1:   Text10er = "ein"
    Case 2:   Text10er = "zwei"
    Case 3:   Text10er = "drei"
    Case 4:   Text10er = "vier"
    Case 5:   Text10er = "fünf"
    Case 6:   Text10er = "sechs"
    Case 7:   If lZahl = 17 Then Text10er = "sieb" Else Text10er = "sieben"
    Case 8:   Text10er = "acht"
    Case 9:   Text10er = "neun"
    End Select
    Select Case lZahl
    Case Is >= 20
    Text10er = Text10er & "und"
    Case Else
    Text10er = Text10er
    End Select
    End If
    End Function
    

  4. Antwort von - abgemeldetes Mitglied - nach 7 Tagen 0 hilfreich
    Re: Spendenquittung mit Excel/word

    Hallo, sorry, kann hierzu leider weiterhelfen!
    Gruss

  5. Antwort von - abgemeldetes Mitglied - nach 7 Tagen 0 hilfreich
    Re: Spendenquittung mit Excel/word

    Hallo, sorry, kann hierzu leider NICHT weiterhelfen!
    Gruss

  6. Antwort von nach 156 Tagen 0 hilfreich
    Re: Spendenquittung mit Excel/word

    Tut mir leid. Kann dir da nicht weiterhelfen.

Jetzt auf diese Frage antworten.