Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1628to1632
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
Inhaltsverzeichnis

Userform rechnet richtig und falsch

Userform rechnet richtig und falsch
02.07.2018 11:05:02
Harald
Hallo zusammen,
wir nutzen in der Firma z.T. eine kleine Userform zum Eintragen von Rechnungen. Diese Userform funktionierte problemlos, bis dass der erste PC bei uns modern mit Excel 365 ausgestattet wurde.
Excel 365 berechnet bei einer Rechnungssumme von 250€ zwar die korrekten 47,50€ MwSt, addiert jedoch 250€ + 47,50€ = 725€.
Der Fehler scheint offensichtlich: Excel erkennt plötzlich das Komma nicht mehr. Ich kann aber nirgendwo im Code das Fragment erkennen, was das bewirken könnte:
Private Sub txt_Netto_Change()
If box_Mwst.Value = True Then
If txt_Netto.Value = "" Then Exit Sub
If IsNumeric(txt_Netto.Value) Then
If Len(txt_Netto.Value) > 1 Then
txt_Mwst.Value = txt_Netto.Value * 0.19
Else
txt_Mwst.Value = 0
End If
Else
MsgBox "Bitte nur Zahlen eingeben!", vbInformation + vbOKOnly
With frm_Rechnungen
txt_Netto.Value = ""
txt_Mwst.Value = ""
txt_Brutto.Value = ""
End With
Exit Sub
End If
If txt_Mwst.Value  "" Then
txt_Brutto.Value = (txt_Netto.Value) * 1 + (txt_Mwst.Value) * 1
End If
Else
If txt_Netto.Value = "" Then Exit Sub
If IsNumeric(txt_Netto.Value) Then
If Len(txt_Netto.Value) > 1 Then txt_Mwst.Value = 0
Else
MsgBox "Bitte nur Zahlen eingeben!", vbInformation + vbOKOnly
With frm_Rechnungen
txt_Netto.Value = ""
txt_Mwst.Value = ""
txt_Brutto.Value = ""
End With
Exit Sub
End If
If txt_Mwst.Value  "" Then
txt_Brutto.Value = (txt_Netto.Value) * 1 + (txt_Mwst.Value) * 1
End If
End If
End Sub

Hat jemand von euch eine Idee, was ich ändern könnte; oder weiß jemand, was sich in dem aktuellsten Excel womöglich geändert hat?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform rechnet richtig und falsch
02.07.2018 12:35:03
fcs
Hallo Harald,
statt mit 1 zu multiplizieren ist es besser mit den Konversionsfunktionen zu arbeiten, die Texte in Zahlen oder Datumswerte umwandeln. Hier mal die wichrtigsten
CDbl - Dezimalzahlen
CLng - ganze Zahlen
CCur - Währungs-Text
CDate - Datumswerte
Falls man in den Ergebnis-Textboxen die Nachkommastellen in gewünschter Form darstellen will, dann zusätzlich mit der Funktion Format arbeiten.
Wichtig - hast du ja in deinem Makro schon gemacht:
Die Textbox-Inhalte müssen vor der Anwendung der Konversionsfunktion auf Leer geprüft werden und mit
If IsDate(Text) Then
oder
If IsNumeric(Text) then
auf Konvertierbarkeit geprüft werden.
Private Sub txt_Netto_Change()
If box_Mwst.Value = True Then
If txt_Netto.Value = "" Then Exit Sub
If IsNumeric(txt_Netto.Value) Then
If Len(txt_Netto.Value) > 1 Then
txt_Mwst.Value = Format(CDbl(txt_Netto.Value) * 0.19,"0.00")
Else
txt_Mwst.Value = 0
End If
Else
MsgBox "Bitte nur Zahlen eingeben!", vbInformation + vbOKOnly
With frm_Rechnungen
txt_Netto.Value = ""
txt_Mwst.Value = ""
txt_Brutto.Value = ""
End With
Exit Sub
End If
If txt_Mwst.Value  "" Then
txt_Brutto.Value = Format(CDbl(txt_Netto.Value) + CDbl(txt_Mwst.Value), "#,##0.00")
End If
Else
If txt_Netto.Value = "" Then Exit Sub
If IsNumeric(txt_Netto.Value) Then
If Len(txt_Netto.Value) > 1 Then txt_Mwst.Value = 0
Else
MsgBox "Bitte nur Zahlen eingeben!", vbInformation + vbOKOnly
With frm_Rechnungen
txt_Netto.Value = ""
txt_Mwst.Value = ""
txt_Brutto.Value = ""
End With
Exit Sub
End If
If txt_Mwst.Value  "" Then
txt_Brutto.Value = Format(CDbl(txt_Netto.Value) + CDbl(txt_Mwst.Value), "#,##0.00")
End If
End If
End Sub
Gruß
Franz
Anzeige
AW: Userform rechnet richtig und falsch
04.07.2018 11:59:02
Harald
Moin Franz,
deine Änderungen haben das Problem bereits beseitigt - danke!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige