21. juli 2011 - 13:32Der er
15 kommentarer og 1 løsning
Sum af TextBox i Userform
Hej..... Jeg har en Userform, hvor brugeren skal kunne registrere forskellige informationer.I Userformen er der to TextBox, som skal summe nogle værdier, som er anført i nogle ovenstående TextBox.
I TextBox 4, 5 og 6 skal brugeren anføre nogle talværdier. I TextBox 7, skal summen af TextBox 4 og 5 vises. TextBox 8 skal vise den talværdi som er anført i TextBox 6.
Mit problem består i, at når man taster en talværdi (i TextBox 4, 5 og 6) som er lig eller større end 1.000, så vise TextBox 7 og 8 1,00 frem for 1.000,00.
Jeg har lavet følgende koder:
Kode vedr. TextBox7: Private Sub TextBox4_Change() Dim dTotal As Double Const NumFmt As String = " #,##0.00" With Me dTotal = Val(.TextBox4.Value) + Val(.TextBox5.Value) Me.TextBox7.Value = Format(dTotal, NumFmt) End With End Sub
Private Sub TextBox5_Change() Dim dTotal As Double Const NumFmt As String = " #,##0.00" With Me dTotal = Val(.TextBox4.Value) + Val(.TextBox5.Value) Me.TextBox7.Value = Format(dTotal, NumFmt) End With End Sub
Kode vedr. TextBox8: Private Sub TextBox6_Change() Dim dTotal As Double Const NumFmt As String = " #,##0.00" With Me dTotal = Val(.TextBox6.Value) Me.TextBox8.Value = Format(dTotal, NumFmt) End With End Sub
Det skal bemærkes at de enkelte TextBox indeholder følgende kode:
Private Sub TextBox5_Exit(ByVal Cancel As _ MSForms.ReturnBoolean) If IsNumeric(TextBox5.Value) Then TextBox5.Value = Format(CDbl(TextBox5.Value), " #,##0.00") End If End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat 1 adder End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat 2 adder End Sub Private Sub sætformat(tbNr) Dim cc As Object Set cc = UserForm2.Controls("Textbox" & CStr(tbNr)) cc.Value = Format(cc, "#,##0.00") End Sub Private Sub adder() Me.TextBox1 = erUdfyldt(Me.TextBox1) Me.TextBox2 = erUdfyldt(Me.TextBox2)
Me.TextBox3 = Format(CDbl(Me.TextBox1) + CDbl(Me.TextBox2), "#,##0.00") End Sub Private Function erUdfyldt(tb As Control) If tb = "" Then erUdfyldt = 0 Else erUdfyldt = tb End If End Function
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat 1 beregn End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat 2 beregn End Sub Private Sub sætformat(tbNr) Dim cc As Object Set cc = UserForm2.Controls("Textbox" & CStr(tbNr)) cc.Value = Format(cc, "#,##0.00") End Sub Private Sub beregn() Me.TextBox1 = erUdfyldt(Me.TextBox1) Me.TextBox2 = erUdfyldt(Me.TextBox2)
If CDbl(Me.TextBox2) <> 0 Then Me.TextBox5 = Format(CDbl(Me.TextBox1) / CDbl(Me.TextBox2), "#,##0.00") End If End Sub Private Function erUdfyldt(tb As Control) If tb = "" Then erUdfyldt = 0 Else erUdfyldt = tb End If End Function
txtUdbytteDKK = TextBox 3 * TextBox6 / 100 -> Formel fungerer txtSkatDKK = TextBox3 * TextBox8 / 100 -> Kan ikke få formlen til at fungerer
Mit problem er, at der er nogle at Textboxe, (TextBox6 og TextBox8) som indgår i øvrige beregninger.
Er det muligt at løse dette problem?
FORMATERING AF VALUTAKURS (TextBox6)
Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat3 6 beregn End Sub
FORMATERING AF BRUTTO (TextBox7)
Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat3 7 adder3 End Sub
FORMATERING AF UDBYTTESKAT (TextBox8]
Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat3 8 adder3 End Sub
BEREGNING AF NETTO (TextBox3)
Private Sub sætformat3(tbNr) Dim cc As Object Set cc = UserForm3.Controls("Textbox" & CStr(tbNr)) cc.Value = Format(cc, "#,##0.00") End Sub Private Sub adder3() Me.TextBox7 = erUdfyldt3(Me.TextBox7) Me.TextBox8 = erUdfyldt3(Me.TextBox8)
Me.TextBox3 = Format(CDbl(Me.TextBox7) - CDbl(Me.TextBox8), "#,##0.00") End Sub
Private Function erUdfyldt3(tb As Control) If tb = "" Then erUdfyldt3 = 0 Else erUdfyldt3 = tb End If End Function
BEREGNING AF UDBYTTE I DKK (txtUdbytteDKK)
Private Sub sætformat4(tbNr) Dim cc As Object Set cc = UserForm3.Controls("Textbox" & CStr(tbNr)) cc.Value = Format(cc, "#,##0.00") End Sub Private Sub beregn() Me.TextBox6 = erUdfyldt3(Me.TextBox6) Me.TextBox3 = erUdfyldt3(Me.TextBox3)
If CDbl(Me.TextBox6) <> 0 Then Me.txtUdbytteDKK = Format(CDbl(Me.TextBox3) * CDbl(Me.TextBox6) / 100, "#,##0.00") End If
Rem 22-7-11 ------------------------------------------------------------------------ Rem =================================== 'FORMATERING AF VALUTAKURS (TextBox6) Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat3 6 beregn End Sub Rem =================================== 'FORMATERING AF BRUTTO (TextBox7) Private Sub TextBox7_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat3 7 beregn End Sub Rem =================================== 'FORMATERING AF UDBYTTESKAT (TextBox8] Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean) sætformat3 8 beregn End Sub Rem =================================== 'BEREGNING AF NETTO (TextBox3) Private Sub sætformat3(tbNr) Dim cc As Object Set cc = UserForm3.Controls("Textbox" & CStr(tbNr)) cc.Value = Format(cc, "#,##0.00") End Sub Rem xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Private Function erUdfyldt3(tb As Control) If tb = "" Then erUdfyldt3 = 0 Else erUdfyldt3 = tb End If End Function Rem =================================== 'BEREGNING AF UDBYTTE I DKK (txtUdbytteDKK) Private Sub sætformat4(tbNr) Dim cc As Object Set cc = UserForm3.Controls("Textbox" & CStr(tbNr)) cc.Value = Format(cc, "#,##0.00") End Sub Private Sub beregn() Me.TextBox6 = erUdfyldt3(Me.TextBox6) Me.TextBox7 = erUdfyldt3(Me.TextBox7) Me.TextBox8 = erUdfyldt3(Me.TextBox8)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.