﻿'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'																																																'
'                                            				 Kassenbuch 2025-26																							'
'																				Version 3.1																									'
'																																																'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 ' Hinweis
 ' Präfix zur Bezeichnung der Dialogfelder:
 ' edt = EditBox, cbo = ComboBox, lst = ListBox, drp =DropDown, chk = CheckBox, grp = GroupBox, opt = Option-(Radio-)Button, psh = PushButton
 
 ' Versionen:
	'1.0 und weitere		Buchung eingeben und nach pm bertragen
	'2.0 und weitere		zusätzlich Buchungs-Beleg erstellen
	'2.7						Speichern des Buchungsbeleges, Versionsnummer in Dialog
	'2.8						teilweise Validierung des Dialogs KASSENBUCH
	'2.9						teilweise Validierung des Dialogs BUCHUNGSBELEG
	'3.0						Aufteilung in Subs zur besseren Validierung der Eingaben
	'3.1						Neuanordnung der Dialoge und der Subs, damit die Übernahme aus der Buchung in den Kassenbeleg funktioniert.
	'							Der Dialog Buchungsbeleg muss jedoch mit OK neu angestoßen werden, damit die Daten übernommen werden.
	
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


''''''''''''''''''''' - Programmstart / Dialoge - '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''



' PlanMaker starten - Kassenbuch öffnen - Falls nicht mit der Ansicht der Tabelle1 gespeichert wurde, wird diese vorsichtshalber aktiviert:

	Dim pm as Object

	Set pm = CreateObject("PlanMaker.Application")
	If pm.Application.Visible  = True Then
		pm.Application.ActiveWorkbook.Sheets(1).Activate
	Else
		pm.Application.Visible  = True
		pm.Application.Workbooks.Open("\Kassenbuch.pmdx")
		pm.Application.ActiveWorkbook.Sheets(1).Activate
	End If



' Dialog KASSENBUCH gestalten:

	Dim Konten$(2)
		Konten$(0) = "GiroKto"
		Konten$(1) = "Bar"
		Konten$(2) = "SpBuch"

	Dim Zuordnung$(5)
		Zuordnung$(0) = "Beiträge"
		Zuordnung$(1) = "Flugplatz"
		Zuordnung$(2) = "Flugplatz-Fest"
		Zuordnung$(3) = "Versicherung"
		Zuordnung$(4) = "Sonstiges"
		Zuordnung$(5) = "Übertrag"

Begin Dialog KASSENBUCH 312,96, 245, 236, "Buchung - Kassenbuch                                                          Mein Verein e. V."
  Text 20,12,64,12, "Beleg-Datum:"
  Text 20,32,64,12, "Beleg-Nummer:"
  Text 20,52,64,12, "Bemerkung:"
  Text 20,112,64,12, "Buchungsbetrag: **"
  Text 20,132,64,12, "Zu bebuchendes Konto:"
  Text 20,72,64,12, "Belegzuordnung: *"
  TextBox 192,12,32,10, .edtDatum
  TextBox 192,32,32,10, .edtBeleg
  TextBox 88,52,136,10, .edtBemerkung
  ComboBox 144,72,80,36, Zuordnung$(), .cboZuordnung
  TextBox 164,112,40,12, .edtBetrag
  ComboBox 144,132,80,32, Konten$(), .cboKonto
  CheckBox 36,152,100,12, "Buchungsbeleg erstellen", .chkTextMaker
  Text 208,112,12,12, "Euro"
  Text 20,172,136,8, "*  Bei Transfer zwischen 2 Konten -Übertrag- auswählen."
  Text 20,180,164,8, "** Bei negativen Buchungen Minsuszeichen (-) voransetzen."
  OKButton 136,200,48,12
  CancelButton 52,200,48,12
  Text 152,220,84,12, "Version 3.1  -  Stand 08.06.2025"
End Dialog

' Dialog Anweisungen/Intitialisierung:

	Dim Dlg1 As Kassenbuch
	Dlg1.edtDatum = Date
	Dlg1.edtBeleg = pm.Application.Range("B9").value + 1				' Kassenbeleg-Nummer auslesen und 1 dazuzählen
	Dlg1.edtBemerkung = ""
	Dlg1.edtBetrag = "0,00"														' Betragsvorgabe 0,00
	Dlg1.edtBetrag = Format(Dlg1.edtBetrag, "0.00#,##")				' entsprechende Formatierung - wird aber berschrieben																			

	Button1 = Dialog(Dlg1)														' Dialog ausführen

	Eingabe																			' weiter mit Sub Eingabe



' Dialog BUCHUNGSBELEG gestalten:
	
	Dim Beleg$(3)
	Beleg$(0) = " "
	Beleg$(1) = "Einnahme-Beleg"
	Beleg$(2) = "Ausgabe-Beleg"
	Beleg$(3) = "Umbuchungs-Beleg"

Begin Dialog BUCHUNGSBELEG 138,54, 288, 284, "Buchungsbeleg                                                                                           Mein Verein e. V."
  Text 20,12,240,12, "Bei leeren Feldern OK-Taste betätigen, damit die Daten aus der Buchung übernommen werden."
  Text 20,32,68,12, "Buchungsdatum"
  TextBox 224,32,40,12, .edtDatum
  TextBox 224,48,40,12, .edtBeleg
  Text 20,48,72,12, "Beleg-Nummer"
  Text 20,64,72,12, "Beleg-Art"
  DropListBox 180,64,84,32, Beleg$(), .drpBeleg
  Text 20,100,64,12, "Betreff/Zuordnung"
  TextBox 104,100,160,12, .edtBetreff
  Text 20,120,32,12, "Position 1"
  TextBox 56,120,140,12, .edtPos_1
  TextBox 200,120,44,12, .edtBetrag_1
  Text 20,136,32,12, "Position 2"
  TextBox 56,136,140,12, .edtPos_2
  TextBox 200,136,44,12, .edtBetrag_2
  Text 20,152,32,12, "Position 3"
  TextBox 56,152,140,12, .edtPos_3
  TextBox 200,152,44,12, .edtBetrag_3
  Text 20,168,32,12, "Position 4"
  TextBox 56,168,140,12, .edtPos_4
  TextBox 200,168,44,12, .edtBetrag_4
  Text 20,184,32,12, "Position 5"
  TextBox 56,184,140,12, .edtPos_5
  TextBox 200,184,44,12, .edtBetrag_5
  Text 20,208,28,12, "Summe: *"
  TextBox 200,208,44,12, .edtSumme
  Text 248,120,16,12, "Euro"
  Text 248,136,12,12, "Euro"
  Text 248,152,12,12, "Euro"
  Text 248,168,16,12, "Euro"
  Text 248,184,12,12, "Euro"
  Text 248,208,12,12, "Euro"
  Text 20,224,224,12, "* Summe wird nicht nach TextMaker bertragen! Diese dient zur Validierung der Eingaben."
  OKButton 160,248,56,16
  CancelButton 68,248,56,16
  Text 184,272,84,12, "Version 3.1  -  Stand 08.06.2025"
End Dialog

' Dialog Anweisungen/Intitialisierung:
	Dim Dlg2 As Buchungsbeleg
	Dlg2.edtDatum = Dlg1.edtDatum 												' Übernahme aus Dialog1(Kassenbuch)
	Dlg2.edtBeleg = Dlg1.edtBeleg 												' Übernahme aus Dialog1(Kassenbuch)	
	Dlg2.edtBeleg = Format(Dlg2.edtBeleg, "####-###")						' Formatänderung, aus yyyyxxx wird yyyy-xxx zum Übertrag nach tm
	
	If Dlg1.edtBetrag < "0,00" Then												' Übernahme aus Dialog1(Kassenbuch)
		Dlg2.drpBeleg = 2																' Bei Negativbuchungen wir aus dem Beleg ein Ausgabe-Beleg, bei positiven ein Einnahme-Beleg
	ElseIf Dlg1.edtBetrag > "0,00" Then
		Dlg2.drpBeleg = 1
	End If

	If Dlg1.cboZuordnung = "Übertrag" Then										' Übernahme aus Dialog1(Kassenbuch)
		Dlg2.drpBeleg = 3																' Sollte es sich bei der Buchung um eine Umbuchung (z. B. Einzahlung von Barkasse auf Girokonto) handeln, wird der Beleg als Umbuchungs-Beleg bezeichnet.
	End If

	Dlg2.edtBetreff = Dlg1.cboZuordnung
	Dlg2.edtPos_1 = Dlg1.edtBemerkung											' Übernahme aus Dialog1(Kassenbuch)
	Dlg2.edtBetrag_1 = Dlg1.edtBetrag											' Vorbelegung der Belegpositionen 2-5
	Dlg2.edtBetrag_1 = Format(Dlg2.edtBetrag_1, "0.00#,##")
	Dlg2.edtPos_2 = "  -"
	Dlg2.edtBetrag_2 = "0,00"
	Dlg2.edtBetrag_2 = Format(Dlg2.edtBetrag_2, "0.00#,##")
	Dlg2.edtPos_3 = "  -"	
	Dlg2.edtBetrag_3 = "0,00"
	Dlg2.edtBetrag_3 = Format(Dlg2.edtBetrag_3, "0.00#,##")
	Dlg2.edtPos_4 = "  -"	
	Dlg2.edtBetrag_4 = "0,00"
	Dlg2.edtBetrag_4 = Format(Dlg2.edtBetrag_4, "0.00#,##")
	Dlg2.edtPos_5 = "  -"
	Dlg2.edtBetrag_5 = "0,00"
	Dlg2.edtBetrag_5 = Format(Dlg2.edtBetrag_5, "0.00#,##")

	Dlg2.edtSumme = Dlg1.edtBetrag ' Übernahme aus Dialog1(Kassenbuch)	' Nur zur Validierung der Eingabe - Summe wird in TM ausgerechnet (würde sich aber auch übertragen lassen)
	Dlg2.edtSumme = Format(Dlg2.edtSumme, "0.00#,##") 

	Button2 = Dialog(Dlg2)																' Dialog ausführen

	BelegEingabe																			'	weiter mit Sub BelegEingabe



''''''''''''''''''''''''''' - Dialogbearbeitung BUCHUNG und Übertrag nach Planmaker - '''''''''''''''''''''''''''''''''''''''''''''''''''''''''



Sub Eingabe	

	If Button1 = 0 Then 															' Button Abbrechen
		MsgBox "Buchung wird abgebrochen", MB_ICONSTOP
		Exit Sub
	 End If	

	If Button1 = -1 Then															' Button OK
		Validierung																	' weiter mit Sub Validierung
	End If

End Sub


Sub Validierung																	' Überprüfung der Eingaben auf Stimmigkeit (Sind die eingaben valide?)

	If Not IsNumeric(Dlg1.edtBeleg) Then
		MsgBox "Die Belegnummer darf nur aus Ziffern bestehen, das Trennzeichen zwischen Jahr und Beleg wird in Excel eingefügt!", MB_ICONSTOP
		Dialog Dlg1
		Button1 = 1
	End If
	If Dlg1.edtBemerkung = "" Then										
		MsgBox "Bitte Bermerkung eingeben!", MB_ICONSTOP
		Dialog Dlg1
		Button1 = 1
	End If
	If Dlg1.cboZuordnung = "" Then
		MsgBox "Bitte eine Betragszuordnung auswählen!", MB_ICONSTOP
		Dialog Dlg1
		Button1 = 1
	End If
	If Dlg1.edtBetrag = "0,00" Then
		MsgBox "Bitte Buchungsbetrag eingeben! Bei Ausgaben ein Minuszeichen(-) voransetzen!", MB_ICONSTOP
		Dialog Dlg1
		Button1 = 1
	End If
	If Not IsNumeric(Dlg1.edtBetrag) Then
		MsgBox "Die Betragseingabe darf nur aus Ziffern (inkl. Komma und Vorzeichen) bestehen!", MB_ICONSTOP
		Dialog Dlg1
		Button1 = 1
	End If
	If Dlg1.cboKonto = "" Then
		MsgBox "Bitte Konto auswählen!", MB_ICONSTOP
		Dialog Dlg1
		Button1 = 1
	End If

	Uebertragung																' Weiter mit Sub Uebertragung

End Sub


Sub Uebertragung

	If Dlg1.edtBetrag > 0 Then																		' Nach Prüfung auf Validität der Eingaben erfolgt der Hinweis, dass die Einnahme-/Ausgabe-Buchung ausgeführt wird
		MsgBox "Die Einnahme-Buchung wird ausgeführt!", MB_ICONINFORMATION 
	Else
		MsgBox "Die Ausgabe-Buchung wird ausgeführt!", MB_ICONINFORMATION 
	End If	

' Übertrag der Eingaben in die Zeile 8 der Tabelle1 (Kassenbuch)
	pm.Application.Range("A8").Value = Dlg1.edtDatum
	pm.Application.Range("B8").Value = Dlg1.edtBeleg
	pm.Application.Range("C8").Value = Dlg1.edtBemerkung
	pm.Application.Range("D8").Value = Dlg1.cboZuordnung
	Dlg1.edtBetrag = Format(Dlg1.edtBetrag, "0.00#,##")
	pm.Application.Range("E8").Value = Dlg1.edtBetrag
	pm.Application.Range("F8").Value = Dlg1.cboKonto


' Neue Zellen in die jeweiligen Tabellenblätter einfügen anschließend die Formel aus diesen bertragen:

	pm.Application.ActiveWorkbook.Sheets(1).Range("A7:F7").Select						' zu kopierenden Bereich auswählen
	pm.Application.ActiveWorkbook.Sheets(1).Selection.Copy								' Bereich kopieren
	pm.Application.ActiveWorkbook.Sheets(1).Range("A8:F8").Select						' einzufügenden Bereich auswählen
	pm.Application.ActiveWorkbook.Sheets(1).Selection.Insert pmShiftDown				' Zellen einfgen
	pm.Application.ActiveWorkbook.Sheets(1).Selection.Paste								' kopierte Formeln einfgen

	pm.Application.ActiveWorkbook.Sheets(2).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(2).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(2).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(2).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(2).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(3).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(3).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(3).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(3).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(3).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(4).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(4).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(4).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(4).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(4).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(5).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(5).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(5).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(5).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(5).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(6).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(6).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(6).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(6).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(6).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(7).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(7).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(7).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(7).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(7).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(8).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(8).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(8).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(8).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(8).Selection.Paste

	pm.Application.ActiveWorkbook.Sheets(9).Range("A7:F7").Select
	pm.Application.ActiveWorkbook.Sheets(9).Selection.Copy
	pm.Application.ActiveWorkbook.Sheets(9).Range("A8:F8").Select
	pm.Application.ActiveWorkbook.Sheets(9).Selection.Insert pmShiftDown
	pm.Application.ActiveWorkbook.Sheets(9).Selection.Paste

' Aktivieren des Tabellenblatts 1 um direkt nach Eingabe wieder speichern zu können

	pm.Application.ActiveWorkbook.Sheets(1).Activate

	If Dlg1.chkTextMaker = 1 Then
		Button2 = Dialog(Dlg2)																	' Wenn die Checkbox "chkTextMaker" aktiv ist, wird der "Dialog (Dlg2)" (Buchungsbeleg) aufgerufen.
	Else
		End																							' Wenn die Checkbox "chkTextMaker" nicht aktiv ist, wird das Programm nach Speicherung der Buchung in pm abgebrochen.
	End If

End Sub



'''''''''''''''''''''''''''''''''''' - Dialogbearbeitung KASSENBELEG und Übertrag nach Textmaker - '''''''''''''''''''''''''''''''''''''''''



Sub BelegEingabe

	'Button Abbrechen
	If Button2 = 0 Then
		MsgBox "Belegerstellung wird abgebrochen!", MB_ICONSTOP
		Exit Sub
 	End If

	' Button OK

	If Button2 = -1 Then
		BelegValidierung
	End If
	
End Sub


Sub BelegValidierung

	If Dlg2.edtPos_2 <> "  -" And Dlg2.edtBetrag_2 = "0,00" Then
		MsgBox "Bitte Betrag Position 2 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Dlg2.edtPos_2 = "  -" And Dlg2.edtBetrag_2 <> "0,00" Then
		MsgBox "Bitte Betragsbezeichnung Position 2 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Not IsNumeric(Dlg2.edtBetrag_2) Then
		MsgBox "Die Betragseingabe Position 2 muss numerisch sein!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Dlg2.edtPos_3 <> "  -" And Dlg2.edtBetrag_3 = "0,00" Then
		MsgBox "Bitte Betrag Position 3 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Dlg2.edtPos_3 = "  -" And Dlg2.edtBetrag_3 <> "0,00" Then
		MsgBox "Bitte Betragsbezeichnung Position 3 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Not IsNumeric(Dlg2.edtBetrag_3) Then
		MsgBox "Die Betragseingabe Position 3 muss numerisch sein!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If
	
	If Dlg2.edtPos_4 <> "  -" And Dlg2.edtBetrag_4 = "0,00" Then
		MsgBox "Bitte Betrag Position 4 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Dlg2.edtPos_4 = "  -" And Dlg2.edtBetrag_4 <> "0,00" Then
		MsgBox "Bitte Betragsbezeichnung Position 4 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Not IsNumeric(Dlg2.edtBetrag_4) Then
		MsgBox "Die Betragseingabe Position 4 muss numerisch sein!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Dlg2.edtPos_5 <> "  -" And Dlg2.edtBetrag_5 = "0,00" Then
		MsgBox "Bitte Betrag Position 5 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Dlg2.edtPos_5 = "  -" And Dlg2.edtBetrag_5 <> "0,00" Then
		MsgBox "Bitte Betragsbezeichnung Position 5 eingeben!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If

	If Not IsNumeric(Dlg2.edtBetrag_5) Then
		MsgBox "Die Betragseingabe Position 5 muss numerisch sein!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If	

	BelegBerechnung

End Sub


Sub BelegBerechnung

	Dlg2.edtBetrag_1 = Format(Dlg2.edtBetrag_1, "0%")								' Formatänderung als %, damit der gesamte Betrag erkannt wird addiert werden kann (0,55 = 55% SM-Basic kann scheinbar nur ganze Zahlen addieren)
	Dlg2.edtBetrag_2 = Format(Dlg2.edtBetrag_2, "0%")
	Dlg2.edtBetrag_3 = Format(Dlg2.edtBetrag_3, "0%")
	Dlg2.edtBetrag_4 = Format(Dlg2.edtBetrag_4, "0%")
	Dlg2.edtBetrag_5 = Format(Dlg2.edtBetrag_5, "0%")

	Dlg2.edtBetrag_1 = CDbl(Dlg2.edtBetrag_1)											' Formatänderung als Double, damit der Wert der Eingabebox im der Eingabebox .edtSumme addiert werden kann
	Dlg2.edtBetrag_2 = CDbl(Dlg2.edtBetrag_2)
	Dlg2.edtBetrag_3 = CDbl(Dlg2.edtBetrag_3)
	Dlg2.edtBetrag_4 = CDbl(Dlg2.edtBetrag_4)
	Dlg2.edtBetrag_5 = CDbl(Dlg2.edtBetrag_5)
	Dlg2.edtSumme = Dlg2.edtBetrag_1 + Dlg2.edtBetrag_2 + Dlg2.edtBetrag_3 + Dlg2.edtBetrag_4 + Dlg2.edtBetrag_5				' Addieren der Einzelpositionen
	
	Dlg2.edtBetrag_1 = Dlg2.edtBetrag_1 / 100											' 55 % / 100 = 0,55% nach Formatänderung wird daraus 0,55
	Dlg2.edtBetrag_2 = Dlg2.edtBetrag_2 / 100	
	Dlg2.edtBetrag_3 = Dlg2.edtBetrag_3 / 100	
	Dlg2.edtBetrag_4 = Dlg2.edtBetrag_4 / 100	
	Dlg2.edtBetrag_5 = Dlg2.edtBetrag_5 / 100	
	Dlg2.edtSumme = Dlg2.edtSumme / 100

	Dlg2.edtBetrag_1 = Format(Dlg2.edtBetrag_1, "0.00#,##")						' Formatänderung zur Eingabe in Textfeld tm 
	Dlg2.edtBetrag_2 = Format(Dlg2.edtBetrag_2, "0.00#,##")	
	Dlg2.edtBetrag_3 = Format(Dlg2.edtBetrag_3, "0.00#,##")	
	Dlg2.edtBetrag_4 = Format(Dlg2.edtBetrag_4, "0.00#,##")
	Dlg2.edtBetrag_5 = Format(Dlg2.edtBetrag_5, "0.00#,##")
	Dlg2.edtSumme = Format(Dlg2.edtSumme, "0.00#,##")

	If Dlg2.edtSumme <> Dlg1.edtBetrag Then											' Prüfung ob die BelegSumme mit der BuchungsSumme (Dialog Dlg1) übereinstimmt.
		MsgBox "Bitte Beträge der Einzelpositionen prüfen, Belegsumme stimmt nicht mit dem Buchungsbetrag überein!", MB_ICONSTOP
		Button2 = Dialog(Dlg2)
		BelegEingabe
		Exit Sub
	End If	

	Button2 = Dialog (Dlg2)
	BelegUebertragung

End Sub


Sub BelegUebertragung

	MsgBox "Belegerstellung wird ausgeführt! Der Kassenbeleg wird automatisch gespeichert.", MB_ICONINFORMATION 

	Dim tm as Object

	Set tm = CreateObject("TextMaker.Application")
	
	If tm.Application.Visible  = True Then
		tm.Application.Documents.Add("\BM-Kassenbeleg.tmvx")
		tm.Application.ActiveDocument.Activate
	'	tm.Application.WindowState = 2 'minimiert    			'Auskommentiert weil an dieser Stelle nicht mehr nötig
	Else
		tm.Application.Visible = true
		tm.Application.Documents.Add("C:\Users\mshop\Documents\SoftMaker\Scripts\SM Forum Beispieldateien\BM-Kassenbeleg.tmvx")
		tm.Application.ActiveDocument.Activate
	'	tm.Application.WindowState = 2 ' minimiert    			'Auskommentiert weil an dieser Stelle nicht mehr nötig
	End If


	tm.ActiveDocument.FormFields("Belegnummer").TextInput.Text = Dlg2.edtBeleg
	tm.ActiveDocument.Formfields("Beleg-Art").DropDown.Value = Dlg2.drpBeleg
	tm.ActiveDocument.Formfields("Druckdatum").TextInput.Text = Dlg2.edtDatum
	tm.ActiveDocument.Formfields("Betreff").TextInput.Text = Dlg2.edtBetreff	
	tm.ActiveDocument.Formfields("Position1").TextInput.Text = Dlg2.edtPos_1
	tm.ActiveDocument.Formfields("Betrag1").TextInput.Text = Dlg2.edtBetrag_1
	tm.ActiveDocument.Formfields("Position2").TextInput.Text = Dlg2.edtPos_2
	tm.ActiveDocument.Formfields("Betrag2").TextInput.Text = Dlg2.edtBetrag_2
	tm.ActiveDocument.Formfields("Position3").TextInput.Text = Dlg2.edtPos_3
	tm.ActiveDocument.Formfields("Betrag3").TextInput.Text = Dlg2.edtBetrag_3
	tm.ActiveDocument.Formfields("Position4").TextInput.Text = Dlg2.edtPos_4
	tm.ActiveDocument.Formfields("Betrag4").TextInput.Text = Dlg2.edtBetrag_4
	tm.ActiveDocument.Formfields("Position5").TextInput.Text = Dlg2.edtPos_5
	tm.ActiveDocument.Formfields("Betrag5").TextInput.Text = Dlg2.edtBetrag_5

	tm.ActiveDocument.SaveAs "\Kassenbeleg" & Dlg2.edtBeleg									' automatische Speicherung des Kassenbelegs unter Angabe der Belegnummer
			
	tm.Application.WindowState = 3																								' tm wird auf ganzem Bildschirm angezeigt um ggf. den Kassenbeleg in tm editieren zu können 

End Sub