PDA

Vollständige Version anzeigen : Rechnung im Formular


niccki
31.08.2017, 06:24
Hallo, ich möchte gerne in einem Formular eine kleine Rechnung ausführen lassen und bekomme das in VBA nicht hin :-(.

Im Moment läuft das Ganze als Zellenformel. Im neuen Formular habe ich lbl
=6-(E12/E11*5)

E12 wird nun im Feld txterreicht abgefragt, E11 im Feld txtgesamt. Die Ausgabe soll in lblnote erfolgen.

Das Ergebnis sollte auf eine Stelle gerundet werden und automatisch angezeigt werden, sobald beide Werte in den Textfeldern eingetragen sind (möglichst ohne Fehlermeldung, wenn txtgesamt erst nach txt erreicht eingetragen wird und kurzefristig eine Division durch 0 entsteht.)

Kann jemand helfen? Danke schonmal und viele Grüße, niccki

hary
31.08.2017, 06:36
Moin
Ungetestet.
lblnote = Round(6 - (CDbl(txterreicht) / CDbl(txtgesamt) * 5), 1)
Textboxen geben Text zurueck, daher muss der Text in eine Zahl gewandelt werden.
gruss hary

RPP63neu
31.08.2017, 06:57
Moin!
daher muss der Text in eine Zahl gewandelt werden.
Jein!
Durch die Rechenoperation wird ja automatisch eine Konvertierung durchgeführt.
Sauberer ist Deine Variante natürlich dennoch, hary.

Gruß Ralf

niccki
31.08.2017, 07:19
okay, super, mit

Private Sub lblnote_Click()
lblnote = Round(6 - (CDbl(txterreicht) / CDbl(txtgesamt) * 5), 1)
End Sub

ist es nun so, dass das richtige Ergebnis steht, wenn ich auf das Label klicke. Ich hät's nur gerne so, dass es da automatisch steht.

lblerreicht_Change() bringt leider nichts.

hary
31.08.2017, 07:24
Moin Ralf
Gebe dir recht. Intern macht das VBA. Hab es mir aber so angewoehnt.
Wichtiger waere ggf. zu pruefen, ob ueberhaupt der TXT Inhalt eine Zahl ist.
Wenn nur Zahleneingabe fuer die TXT-Boxen zugelassen ist, braucht es keine Pruefung.
gruss hary

niccki
31.08.2017, 07:31
das mit der Zahl ist nicht so wichtig, damit muss nicht weitergerechnet werden, es muss nur abgelesen werden.

Bleibt die Frage, wie es gleich und ohne Fehlermeldung erscheint :-)

hary
31.08.2017, 07:31
Moin
Wenn du es automatisch haben moechtest musst/kannst die ein Ereigniss einer Txt Box nehmen.
Bsp.-weise: Private Sub txtgesamt_AfterUpdate()
kommt aber darauf an in welcher Reihenfolge du eingibst.
gruss hary