Addition von Textboxen

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von vba.projekt.

    Addition von Textboxen

    Hallo zusammen,


    ich habe ein Problem, bei dem mir viele andere Kommentare leider nicht exakt weiterhelfen konnte....
    Ich habe einige Textboxen, in die Euro-Beträge eingegeben werden. Anschließend sollen diese aufaddiert werden (auch als Dezimalzahl).

    Ich habe einiges probiert aber es wird leider nichts...
    Mein Code sieht in der Rohversion wie folgt aus:


    Private Sub cmd_belege_gesamt_Click()
    Dim summe, betrag1, betrag2, betrag3, betrag4, betrag5, betrag6, betrag7 As String

    betrag1 = txt_betrag_1.Value
    betrag2 = txt_betrag_2.Value
    betrag3 = txt_betrag_3.Value
    betrag4 = txt_betrag_4.Value
    betrag5 = txt_betrag_5.Value
    betrag6 = txt_betrag_6.Value
    betrag7 = txt_betrag_7.Value

    summe = betrag1 + betrag2 + betrag3 + betrag4 + betrag5 + betrag6 + betrag7
    txt_belege.Text = Format(summe, "0.00##")
    End Sub

    Hoffentlich könnt ihr einem Anfänger dabei fix weiterhelfen.

    Herzlichen Dank
    @FreakJNS: "Option Strict On" gibt's bei VBA leider nicht. :(

    Visual Basic-Quellcode

    1. Private Sub cmd_belege_gesamt_Click()
    2. Dim summe As Decimal, betrag1 As Decimal, betrag2 As Decimal, betrag3 As Decimal, betrag4 As Decimal, betrag5 As Decimal, betrag6 As Decimal, betrag7 As Decimal
    3. betrag1 = CDec(Val(txt_betrag_1.Value))
    4. ...
    5. betrag7 = CDec(Val(txt_betrag_7.Value))
    6. summe = betrag1 + betrag2 + betrag3 + betrag4 + betrag5 + betrag6 + betrag7
    7. txt_belege.Text = Format(summe, "##0.00")
    8. End Sub
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hey,

    herzlichen Dank für eure Kommentare.
    Aber auch der Code von petaod funktioniert bei mir nicht....
    Ich habe folgendes gemacht: alle Textboxen mit Null vorbelegt und dann die folgende formel angewendet:

    Private Sub cmd_belege_gesamt_Click()
    Dim betrag1, betrag2, betrag3, betrag4, betrag5, betrag6, betrag7, summe As Double

    betrag1 = txt_betrag_1.Text
    betrag2 = txt_betrag_2.Text
    betrag3 = txt_betrag_3.Text
    betrag4 = txt_betrag_4.Text
    betrag5 = txt_betrag_5.Text
    betrag6 = txt_betrag_6.Text
    betrag7 = txt_betrag_7.Text

    summe = betrag7 + betrag6 + betrag5 + betrag4 + betrag3 + betrag2 + betrag1

    txt_belege.Text = summe

    End Sub

    Allerdings schreibt er mir jetzt die zahlen nur hintereinander (z.b. betrag1 = 1; betrag2 = 2 ==> 12 und nicht 3)
    Dazu jemand noch ne Idee?
    du solltest halt auch lesen....
    Mit Text(Strings) kann man nicht rechnen! Was soll denn raus kommen wenn ich Hallo + Sahnetorte rechne?
    DU musst Deine Eingaben konvertieren! Siehe Beispiel:

    Visual Basic-Quellcode

    1. Sub test()
    2. Dim txt As String
    3. txt = "1,5"
    4. Dim zahl As Double
    5. zahl = CDbl(txt)
    6. MsgBox zahl
    7. End Sub

    @petaod :
    zumindest in meinem Excel gibts den Typ Decimal nicht... daher der Fehler

    FloFuchs schrieb:

    in meinem Excel gibts den Typ Decimal nicht.
    Sch...
    In meinem auch nicht :)

    Man sollte halt immer vorher testen, wenn der Fragesteller damit überlastet ist. ;)
    Aber für den Zweck reicht auch Double problemlos, insbesondere weil es am Schluss mit gekürztem Format angezeigt wird.

    @TE:
    Die Variante CDbl(Val(Text)) ist ein Konstrukt, das so ähnlich einsetzbar ist, wie in VB.net das ParseDouble.
    Mit dem Ergebnis kann man auch rechnen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --