Rechnung in Word - ohne Excel

Mit etwas einfacher Makroprogrammierung lässt sich in Word auch ohne Excel rechnen und somit eine Rechnung erstellen. Das Tutorial zeigt in mehreren Teilen, wie sich eine Rechnung mit allem Drum und Dran erstellen lässt.
Rechnung in Word - ohne Excel
Filter in zwei oder mehr Spalten zu setzen, die nicht voneinander abhängig sind, ist mit den Filtermöglichkeiten, die Excel bietet, nicht möglich. Angenommen Sie haben eine Tabelle mit ein paar Städten, zwei verschiedene Kategorien und zugehörigen Umsätzen. Aktivieren Sie über das Menüband Daten in der Gruppe Sortieren und Filtern den
Zwei Filter setzen mit ODER(...)
Mir gefiehlen die guten alten Weblinks von Joomla nicht, als ich diese Site relaunchte. Beispielsweise war es nicht möglich die Sprache der verlinkten Site per Landesfahne zu kennzeichnen. Auch waren
SEBLOD: Weblinks mit automatisierten Screenshots

Excel-Lösungen

  • Tutorials zu Fragen rund um Excel
  • Teilweise mit Makroprogrammierungen.
  • Fertige Excel-Sheets mit Teillösungen zum Download
Excel-Lösungen
Dieses Tutorial steht im Downloadcenter (http://www.time4mambo.de/downloads/viewcategory/3.html) als PDF zur Verfügung Einfache Rechnung Einzelpostenauflistung, Zwischensumme, Gesamtsumme und Mehrwertsteuer – für den Geschäftsmann
Rechnungserstellung mit Word und Excel
Seit Joomla 3 ist das CSS-Framework Bootstrap fester Bestandteil in Joomla und kann für eigene Templates somit einfach benutzt werden. Auf time4jaoomla erfahren Sie, wie es geht.
Bootstrap mit Joomla
Original-Auszug aus dem Buch Die Überlegung: Wir haben eine Kulturredaktion, der eine Kategorie zugeordnet ist. Und wir haben eine Politikredaktion, die in zwei Kategorien schreibt. Beide Redaktionen sollen nur ihre eigenen Beiträge bearbeiten, veröffentlichen und löschen können. Außerdem bekommen beide Redaktionen noch einen Chefreakteur zur Seite, der in allen
Fallbeispiel: Redaktionssystem
Schaut man sich das erste Mal einen CSS-Befehl an, führt das meistens zu einem panischen Weiterklicken, weil das alles sehr kompliziert ausschaut. Aber eigentlich ist es das nicht. Bei genauer Betrachtung ist CSS eigentlich sogar selbsterklärend und wenn man eine Weile damit umgegangen ist, geht es schon beinahe wie von
Wie funktioniert CSS
Das Tutorial steht auf time4mambo zum Download bereit: http://www.time4mambo.de/das-unternehmen/downloads/category/11-joomla-1-5.html (http://www.time4mambo.de/das-unternehmen/downloads/category/11-joomla-1-5.html) Dieses Tutorial ist ursprünglich für Joomla! 1.5 geschrieben worden. So ich es derzeit überblicke hat das Tutorial aber auch in Joomla!
Community Builder
Grafische Rollovers mit dem JCE zu machen ist ja recht einfach, weil der JCE hier schon fertige Einstellmöglichkeiten sehr einfach mitbringt.Aber wie wird ein Rollover-Effekt bei einer Textmarke erzielt? Eigentlich genauso wie ein grafischer Rollover-Effekt - nur mit einem klitzekleinen Trick: Zunächst schreiben wir den Text: Lass uns was schreiben und mittendrin einen
Text-Rollover mit dem JCE
Dieses Tutorial steht als PDF-Download im http://www.time4mambo.de/webdesign/referenz.html (http://www.time4mambo.de/webdesign/referenz.html)
SEBLOD: Einführung am Beispiel eines selbsterstellten Portfolios

Newsletter

captcha 

Deutschsprachige Seblod-Community

Zu dritt haben wir die deutschsprachige SEBLOD™-Community gegründet. Neben Ressourcen und Webseiten , die mit SEBLOD™ gemacht sind, bieten wir ein Supportforum zu Fragen rund um SEBLOD™ an.

http://seblod.time4mambo.de

Selbst geschrieben

 Joomla Topsites

Wer Danke sagen möchte...

Schulungen

Langjährige Erfahrung als Dozent zu verschiedenen Themen.
Ich komme zu Ihnen in die Firma oder organisiere Räume vor Ort. Dazu steht mir ein Netzwerk aus vielen Jahren Tätigkeit als freier Dozent zur Verfügung.
Weitere Informationen, sowie Referenzen finden Sie auf der Firmenseite time4mambo

    MS-Excel
    2003 / 2007/ 2010
    MS-Project
    2003 / 2007
    MS-Word
    2003 / 2007 / 2010
    MS-PowerPoint 2010
    Joomla! 1.5 / 2.5
    Körpersprache für Präsentation und zur verkaufsfördernen Motivation

    Weitere Themen auf Anfrage

Interesse? Lust? Zeit? Dann freue ich mich über eine eMail oder Anruf.
Kontaktdaten im Impressum


Newsletter

Nach Bestätigung des Buttons wird eine Bestätigungs-eMail versendet, die Sie bitte durch anklicken bestätigen. So kann Missbrauch mit Ihrer eMail-Adresse ausgeschlossen werden

Rechnung in Word ohne Excel

Rechnungserstellung - Teil 1 - ohne Excel - Makroprogrammierung - Rechnen in Word

Word
2013

Eine Exceltabelle einbinden und mit ihr rechnen ist eine Möglichkeit. Es geht aber auch ganz ohne Excel. Eine Tabelle in Word und ein wenig Programmierung und es lässt sich damit eine individuelle Rechnung erstellen.

Es wird eine kleinere Serie zur Rechnungserstellung geben:

  • Im ersten Teil wird die Tabelle eingebunden und wir rechnen in dieser Tabelle. MwSt, Spesen, Honorar und die Summe aus allem
  • Im zweiten Teil wird dann die automatisch fortlaufende Rechnungsnummer erzeugt und gezeigt, wie sie eingebunden wird
  • Der dritte Teil beschäftigt sich mit Variationen der Rechnung: Mal mit, mal ohne MwSt - mal mit, mal ohne Spesen - so wie wir es brauchen und alles in einer Rechnungsvorlage
  • Im vierten Teil wird der Auftrag und die Rechnungsadresse automatisiert. Eine Vorlage für die wichtigsten Kunden und natürlich jederzeit völlig individualisiert - für Neukunden und die, die nicht so recht ins Schema passen...
This Document

Code direkt eingeben:

Wenn Sie Ihre Vorlage geöffnet haben, benutzen Sie folgendes Tastaturkürzel, um in den VBA-Editor zu gelangen:

ALT+F11

Links sollten Sie den Projektmanager sehen. Falls nicht, im Menü ganz oben Ansicht anklicken und Projekt-Explorer anklicken. Dort klicken Sie dann auf "ThisDocument", welches innerhalb Ihrer Vorlage liegt.

Rechts daneben ist die Codeeingabe. Dort kopieren sie einfach meinen ganzen Code hinein und drücken oben links auf Speichern.

Wenn Sie dann ein neues Dokument auf Basis Ihrer Vorlage starten, dann können Sie in Zukunft Ihre Rechnung ganz ohne Excel in Word erstellen lassen.

Schnellzugriffsleiste anpassen

Wie das Makro zum laufen gebracht wird:

Solange nichts in den Tabellen steht, lässt es sich schlecht rechnen. Darum funktioniert dieses Makro erst, wenn es explizit gestartet wird.

Wechseln Sie (nachdem Sie den Code eingegben haben, da es sonst nicht funktioniert), in die Optionen (Menüband Datei) und dort in "Symbolleiste für den Schnellzugriff". Oben Links sehen Sie eine Pulldown-Auswahl, die Standardmäßig auf "Häufig verwendete Befehle" steht. Wählen Sie dort die "Makros" aus. In der Liste sollte zumindest das eben eingebene Makro stehen. Vermutlich steht dort neben einem kleinen Icon Normal.Modul1.RechnungsTabelle. Diesen Namen ankllicken und auf Hinzufügen klicken. Nun klicken Sie einmal rechts in der Liste das eben zugefügte Makro an und klicken unten auf "Ändern..." Nun können Sie zum einen ein Icon auswählen und den Text ändern, der im Tooltip zu dem Makro angezeigt wird.

Haben Sie alles eingestellt, klicken Sie auf "OK". In Ihrer Schnellzugriffsleiste steht nun Ihr neues Icon, welches nach anklicken das Makro startet und die Rechnung berechnet.

Sub RechnungsTabelle()
On Error GoTo Fehler

Dim Zahl As Word.Table
Dim Rechnung(2) As Integer
Dim Summe As String
Dim MwstHono As Integer, MwstSpes As Integer


Set Zahl = ActiveDocument.Tables(1)

'Zwischensummen auslesen
Rechnung(1) = SteuerungsZeichenWeg(Zahl.Cell(1, 2).Range.Text)
Zahl.Cell(1, 2).Range.Text = Format(Rechnung(1), "#,##0.00 \€")
Rechnung(2) = SteuerungsZeichenWeg(Zahl.Cell(4, 2).Range.Text)
Zahl.Cell(4, 2).Range.Text = Format(Rechnung(2), "#,##0.00 \€")


'MwSt berechnen
MwstHono = Rechnung(1) * 0.19
Zahl.Cell(2, 2).Range.Text = MwstHono
Zahl.Cell(2, 2).Range.Text = Format(MwstHono, "#,##0.00 \€")
MwstSpes = Rechnung(2) * 0.19
Zahl.Cell(5, 2).Range.Text = MwstSpes
Zahl.Cell(5, 2).Range.Text = Format(MwstSpes, "#,##0.00 \€")

'Gesamtsumme berechnen
Summe = Rechnung(1) + Rechnung(2) + MwstHono + MwstSpes
Zahl.Cell(8, 2).Range.Text = Summe
Zahl.Cell(8, 2).Range.Text = Format(Summe, "#,##0.00 \€")


Exit Sub
Fehler:
MsgBox Err.Description
Resume Next
End Sub

Function SteuerungsZeichenWeg(ByVal Inhalt As String) As String
SteuerungsZeichenWeg = Left(Inhalt, Len(Inhalt) - 2)
End Function

Zunächst der ganze Code im Überblick. Wer nicht so erfahren ist in der Programmierung: keine Angst, es sieht schlimmer aus, als es ist. Wer mit Programmierung gar nichts anfangen kann, dem habe ich den fertigen Code zum Download bereit gestellt. (das paassiert in auch tatsächlich in Kürze...) Beachten Sie dazu bitte den Tab "Dokumentation".

Was Sie zunächst machen müssen: ein neues Dokument anlegen. Dieses speichern Sie als Vorlage mit Makros in Word ab.

word rechnung vorlage speichern

 

 In dieser Vorlage muss eine Tabelle drin sein. In meinem Beispiel arbeite ich mit einer 2-spaltigen und 8-zeiligen Tabelle. Der Aufbau:

In Spalte 1 steht jeweils die Beschriftung und in Spalte 2 wird gerechnet, bzw. die einzelnen Summen eingegeben.
In den ersten beiden Zeilen steht die Summe plus zugehöriger MwSt., eine Zeile frei und dann die Spesen plus MwSt., zwei Zeilen frei und die Gesamtsumme aus den vier Posten.

Der Code im Detail:

 

Dim Zahl As Word.Table
Dim Rechnung(2) As Integer
Dim Summe As String
Dim MwstHono As Integer, MwstSpes As Integer


Set Zahl = ActiveDocument.Tables(1)

In Word können unter anderem die Tabellen eines Dokuments einzeln angesprochen werden. Damit das funktioniert deklariere ich zunächst eine Objektvariable als Word.Table. Dieser Objektvariable weise ich dann die Tabelle zu, die in meinem Beispieldokument den Index 1 trägt ( Set Zahl = ActiveDocument.Tables(1) ). Haben Sie mehrere Tabellen in Ihrem Dokument dann müssen Sie die von oben nach unten durchzählen und übergeben den Index der Tabelle, die die Berechnungen enthält. Wie gesagt: ich habe nur eine Tabelle in meiner Vorlage und übergebe daher den index "1".

Rechnung(2) ist ein kleines Array, in dem ich dann die Summen zwischenspeichere, um leichter rechnen zu können.

Die anderne Variablen sprechen für sich, wie ich denke.

 

Rechnung(1) = SteuerungsZeichenWeg(Zahl.Cell(1, 2).Range.Text)
Zahl.Cell(1, 2).Range.Text = Format(Rechnung(1), "#,##0.00 \€")
Rechnung(2) = SteuerungsZeichenWeg(Zahl.Cell(4, 2).Range.Text)
Zahl.Cell(4, 2).Range.Text = Format(Rechnung(2), "#,##0.00 \€")

Meiner Array-Variablen Rechnung(1) weise ich denn auch zunächst den Wert zu, der in der Tabelle in Spalte 2 und Zeile 1 steht. Allerdings hat Word das Problem, dass in der Tabelle nicht der "reine" Wert steht, sondern ein Wert mit einem Steuerungszeichen am Ende. Das können Sie sehen, wenn Sie sich den Tabellenwert mit einer Messagebox anzeigen lassen:

MsgBox Zahl.Cell(1,2).Range.Text

ergibt diese Anzeige:

msgbox

 
Der schwarze Punkt unter der Zahl symbolisiert das Steuerungszeichen.

Mit einem Steuerungszeichen hinter der Zahl lässt sich natürlich nicht rechnen. Also muss das entfernt werden. Leider bleibt es aber auch nach dem entfernen in der Tabelle mit dem Steuerungszeichen stehen, weshalb wir die bereinigte Zahl einer Variablen - in meinem Fall einem Array - zuweisen müssen.

Da ich die Bereinigung mehrmals benötige, habe ich mir dafür eine kleine Funktion geschrieben, die ich zunächst in dieser Zeile aufrufe:

Rechnung(1) = SteuerungsZeichenWeg(Zahl.Cell(1, 2).Range.Text)

Die Funktion erkläre ich Ihnen gleich. Die Zeile darunter macht nichts weiter, als die Tabellenzelle als Währungsfeld in Euro zu formatieren.

Aber kommen wir jetzt zur Funktion SteuerungsZeichenWeg

 

Function SteuerungsZeichenWeg(ByVal Inhalt As String) As String
SteuerungsZeichenWeg = Left(Inhalt, Len(Inhalt) - 2)
End Function

An diese Funktion übergebe ich den Inhalt meiner Tabellenzelle. Obwohl dort eine Zahl drin steht, wird in der Tabelle von Word diese Zahl als Zeichenkette (String) formatiert. Wobei das in diesem Fall auch gut so ist, da die Länge des Steuerungszeichen 2 einnimmt. Also reduziere ich einfach die Länge des Wertes um 2 was ich mit Left(Inhalt, Len(Inhalt) - 2) mache  und gebe den Wert der Funktionsvariablen zurück, die ihrerseits den "gesäuberten" Wert an den Aufruf zurückgibt und schließlich in unser Array Rechnung(1) schreibt.

 

 

MwstHono = Rechnung(1) * 0.19
Zahl.Cell(2, 2).Range.Text = MwstHono
Zahl.Cell(2, 2).Range.Text = Format(MwstHono, "#,##0.00 \€")
MwstSpes = Rechnung(2) * 0.19
Zahl.Cell(5, 2).Range.Text = MwstSpes
Zahl.Cell(5, 2).Range.Text = Format(MwstSpes, "#,##0.00 \€")

Nun muss noch die Mehrwertsteuer berechnet werden. Das geht jetzt ganz einfach, in dem ich den Wert im Array-Element mit 0,19 multipliziere. Das Ergebnis weise ich dann der passenden Tabellenzelle zu und formatiere die Zelle noch als Währung.

Summe = Rechnung(1) + Rechnung(2) + MwstHono + MwstSpes
Zahl.Cell(8, 2).Range.Text = Summe
Zahl.Cell(8, 2).Range.Text = Format(Summe, "#,##0.00 \€")

Zuletzt muss noch die Gesamtsumme berechnet werden. Dazu brauche ich nur meine beiden Array-Elemente plus den beiden Mehrwertsteuern addieren und in die Zelle mit passender Formatierung zu schreiben.

Fertig ist unsere Rechnung.


webdesign von time4mambo

www.time4joomla.de is not affiliated with or endorsed by the Joomla! Project or Open Source Matters. The Joomla! name and logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.