03.01.2015, 18:02
Hallo Experten,
erstmal ein Frohes Neues Jahr.
Habe das Problem mit der UF Bezahlen, dort wird nicht immer richtig gerechnet und in der Übersicht eingetragen. Das Problem tritt nicht immer auf! Was auch neu ist, wenn der betrag abgerechnet ist sollte in der Celle nichts mehr stehen, jetzt steht aber -0,00 was nicht richtig ist. Hier erstmal der Code um den es geht.
Nun noch ein Beispiel:
Name Andrea in der UF auswählen, dann in der TextBox3 einen wert eingeben z.B. 6,35, Button Bezahlen drücken. Jezt werden in der Tabelle Übersicht die Werte aus Spalte D in Spalte BF eingetragen und Spalte C in B. Nun sollte in der Spalte C Nichts mehr stehen, aber bei mir steht dann -0,00
Bitte Testet mal durch
erstmal ein Frohes Neues Jahr.
Habe das Problem mit der UF Bezahlen, dort wird nicht immer richtig gerechnet und in der Übersicht eingetragen. Das Problem tritt nicht immer auf! Was auch neu ist, wenn der betrag abgerechnet ist sollte in der Celle nichts mehr stehen, jetzt steht aber -0,00 was nicht richtig ist. Hier erstmal der Code um den es geht.
Code:
Private Sub CmbBezahlen_Click()
Dim dblwert As Double, dblSumm As Double, Gast As Double, rest As Double
Dim lngLastRow As Long
Dim lngC As Long
Dim lngA As Long, lngB As Long, lngD As Long
Dim wksSheet As Worksheet
Dim wksSrc As Excel.Worksheet
Dim rngBereich As Range 'diese Variable neu eingefügt
Dim rngDatum As Range
Set wksSheet = Worksheets("Übersicht")
If Me.ComboBox1.ListIndex < 0 Then
MsgBox "Bitte Namen auswählen"
Exit Sub
End If
If Einzahlung.Value = "" Then
MsgBox "Keinen Betrag eingegeben"
Exit Sub
End If
If Not IsNumeric(Einzahlung.Value) Then
MsgBox "Falsche Eingabe "
Exit Sub
End If
dblwert = CDbl(Einzahlung.Value)
EinZahl = Einzahlung
lngLastRow = wksSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
If Me.ComboBox1 = ("GÄSTE") Then 'Für Gäste Abrechnung
Set wksSrc = ThisWorkbook.Worksheets("Startblatt")
'********* Abfrage ob Pärchen*************
If AwPärchen.Value = True Then
'++++++++++Werte aus TextBoxen von minus in Plus umwandeln+++++++++++++++
Gast = CDbl(TextBox5.Value) - CDbl(TextBox5.Value) - CDbl(TextBox5.Value) + _
CDbl(TextBox6.Value) - CDbl(TextBox6.Value) - CDbl(TextBox6.Value)
Else
Gast = CDbl(TextBox5.Value) - CDbl(TextBox5.Value) - CDbl(TextBox5.Value)
End If
If TextBox4.Value = "0,00 €" Then
MsgBox "Der Betrag wird bei Gästen gebucht", vbInformation, "Kegler"
wksSheet.Cells(lngLastRow - 1, 56) = wksSheet.Cells(lngLastRow - 1, 56) + CDbl(Einzahlung.Value)
wksSrc.Range("AG15").Offset(1 + ComboBox3.ListIndex).Value = "x"
Else
If CDbl(Einzahlung.Value) <= Gast Then
MsgBox "Bertag zu gering, kann so Nicht gebucht werden!", vbInformation, "Kegler"
Exit Sub
End If
MsgBox "Der Betrag wird bei Gästen gebucht", vbInformation, "Kegler"
wksSheet.Cells(lngLastRow - 1, 56) = wksSheet.Cells(lngLastRow - 1, 56) + CDbl(Einzahlung.Value) - TextBox4.Value
wksSrc.Range("AG15").Offset(1 + ComboBox3.ListIndex).Value = "x"
End If
If Me.ComboBox4.ListIndex > -1 Then
wksSrc.Range("AG15").Offset(1 + ComboBox4.ListIndex).Value = "x"
End If
End If
If Me.ComboBox2 = ("GÄSTE") Then 'wird gebraucht wenn Spieler und Gast
If TextBox6 < 0 Then
Set wksSrc = ThisWorkbook.Worksheets("Startblatt")
Gast = CDbl(TextBox6.Value) - CDbl(TextBox6.Value) - CDbl(TextBox6.Value) 'einen minus wert in Plus wert umwandeln
If CDbl(Einzahlung.Value) < Gast Then
MsgBox "Bertag zu gering, kann so Nicht gebucht werden!", vbInformation, "Kegler"
Exit Sub
End If
MsgBox "Der Betrag wird bei Gästen gebucht", vbInformation, "Kegler"
wksSheet.Cells(lngLastRow - 1, 56) = wksSheet.Cells(lngLastRow - 1, 56) + Gast
wksSrc.Range("AG15").Offset(1 + ComboBox4.ListIndex).Value = "x"
dblwert = CDbl(Einzahlung) - CDbl(Gast)
End If
End If
With ListBox1 'ERST die Kegelbahn abrechnen
For lngC = 0 To .ListCount - 1
lngA = .List(lngC, 2)
lngD = .List(lngC, 6)
If dblwert < Abs(wksSheet.Cells(lngA, lngD).Value) Then
wksSheet.Cells(lngA, 58).Value = _
wksSheet.Cells(lngA, 58).Value + dblwert
wksSheet.Cells(lngA, lngD).Value = _
wksSheet.Cells(lngA, lngD).Value + dblwert
dblwert = 0
Exit For
Else
dblwert = dblwert + wksSheet.Cells(lngA, lngD).Value
wksSheet.Cells(lngA, 58).Value = _
wksSheet.Cells(lngA, 58).Value + Abs(wksSheet.Cells(lngA, lngD).Value)
wksSheet.Cells(lngA, lngD).Value = ""
End If
Next lngC
End With
With ListBox1 'DANN Beitrag abrechnen
For lngC = 0 To .ListCount - 1
lngA = .List(lngC, 2)
lngB = .List(lngC, 3)
If dblwert < Abs(wksSheet.Cells(lngA, lngB).Value) Then
wksSheet.Cells(lngA, lngB - 1).Value = _
wksSheet.Cells(lngA, lngB - 1).Value + dblwert
wksSheet.Cells(lngA, lngB).Value = _
wksSheet.Cells(lngA, lngB).Value + dblwert
'rest = Abs(wksSheet.Cells(lngA, lngB))
'If Abs(wksSheet.Cells(lngA, lngB)) = 0 Then
'wksSheet.Cells(lngA, lngB).Value = ""
'Stop
'End If
dblwert = 0
Exit For
Else
dblwert = dblwert + wksSheet.Cells(lngA, lngB).Value
wksSheet.Cells(lngA, lngB - 1).Value = _
wksSheet.Cells(lngA, lngB - 1).Value + Abs(wksSheet.Cells(lngA, lngB).Value)
wksSheet.Cells(lngA, lngB).Value = ""
End If
Next lngC
End With
If CDbl(TextBox4.Value) > 0 And AwSpende Then
MsgBox "Der Betrag wird gespendet", vbInformation, "Kegler"
wksSheet.Cells(lngLastRow - 1, 60) = wksSheet.Cells(lngLastRow - 1, 60) + CDbl(TextBox4.Value)
End If
If dblwert > 0 Then Einzahlung.Value = dblwert
'######TextBox5 nach Buchen neu einlesen######
If Me.ComboBox1 = ("GÄSTE") Then
TextBox5.Value = Format$(wksSrc.Range("AF15").Offset(1 + ComboBox3.ListIndex).Value, "#,##0.00 €")
Einzahlung.Enabled = False 'Eingabe Sperren
If AwPärchen.Value = True Then
'######Wenn Gäste Pärchen auswahl########
TextBox6.Value = Format$(wksSrc.Range("AF15").Offset(1 + ComboBox4.ListIndex).Value, "#,##0.00 €")
End If
Exit Sub
End If
'######Wenn bezahlt, im Startblatt ein x setzen##########
'Testbereich
Set rngBereich = Worksheets("Startblatt").Columns(2).Find(ComboBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
rngBereich.Offset(0, 31).Value = "x"
With Worksheets("Übersicht")
lngLastRow = Cells(.Rows.Count, 1).End(xlUp).Row
'Schleife von 1 bis letzte beschriebene Splate sucht den Namen welcher bezahlen muss
For a = 1 To Sheets("Übersicht").Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(4, a) = ComboBox1 Then Exit For
Next
'Wenn dieser Name gefunden wurde schreibe 5 Zeilen später in die letzte Zeile das Datum
Cells(lngLastRow, a + 5) = Date
Cells(lngLastRow, a + 4) = Format(CDbl(Einzahlung), "#,##0.00 ")
End With
Einzahlung = ""
ComboBox1_Change
If AwPärchen.Value Then ComboBox2_Change
End Sub
Nun noch ein Beispiel:
Name Andrea in der UF auswählen, dann in der TextBox3 einen wert eingeben z.B. 6,35, Button Bezahlen drücken. Jezt werden in der Tabelle Übersicht die Werte aus Spalte D in Spalte BF eingetragen und Spalte C in B. Nun sollte in der Spalte C Nichts mehr stehen, aber bei mir steht dann -0,00
Bitte Testet mal durch
mfg
Michael
:98:
WIN 10 Office 2019
Michael
:98:
WIN 10 Office 2019