Avatar billede JAHT Nybegynder
21. juli 2011 - 13:32 Der 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

På forhånd tak for hjælpen

/Jacob
Avatar billede supertekst Ekspert
21. juli 2011 - 14:32 #1
Hej Jacob

Er begyndt på en løsning - men vender tilbage lidt senere..
Avatar billede supertekst Ekspert
21. juli 2011 - 16:06 #2
Inspiration: Userform med 3 tekstbokse 1 + 2 adderes -> 3

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
Avatar billede JAHT Nybegynder
21. juli 2011 - 22:44 #3
Hej Supertekst,

Hvis man godt kunne tænke sig at gange og dividere nogle textBoxe med hinanden, har jeg lidt problemer med ovenstående formel?

Hilsen Jacob
Avatar billede supertekst Ekspert
21. juli 2011 - 23:00 #4
Hej Jacob

Er noteret- vender tilbage..
Avatar billede supertekst Ekspert
21. juli 2011 - 23:13 #5
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)
   
    Me.TextBox3 = Format(CDbl(Me.TextBox1) + CDbl(Me.TextBox2), "#,##0.00")
    Me.TextBox4 = Format(CDbl(Me.TextBox1) * CDbl(Me.TextBox2), "#,##0.00")
   
    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
Avatar billede JAHT Nybegynder
22. juli 2011 - 08:24 #6
Hej Supertekst,

Det ser meget fint ud. Har dog et mindre problem.

Jeg har følge textboxe:

TextBox6 = Valutakurs
TextBox7 = Brutto
TextBox8 = Skat
TextBox3 = Netto (TextBox7 - TextBox8) -> Formel fungerer

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
   
End Sub
Avatar billede supertekst Ekspert
22. juli 2011 - 09:18 #7
Hej Jacob

Vender tilbage senere..
Avatar billede supertekst Ekspert
22. juli 2011 - 14:16 #8
Er i gang - men jeg synes at TextBox8 optræder i dine indledende beskrivelse på to forskellige måder:

TextBox8 = Skat
TextBox3 = Netto (TextBox7 - TextBox8) -> Formel fungerer

txtSkatDKK = TextBox3 * TextBox8 / 100 -> Kan ikke få formlen til at fungere

Er Textbox8 ikke en procent?
Avatar billede JAHT Nybegynder
22. juli 2011 - 14:21 #9
Nej. TextBox8 er et udtryk for det udbytteskat man skal betale. På fondsmeddelsen er beløbet angivet i kr.

Der står dog også hvor mange pct. man betaller i skat. Men af praktiske årsager, vil det være super, hvis det kunne lykkeds med at taste beløbet.

Hilsen Jacob
Avatar billede supertekst Ekspert
22. juli 2011 - 14:36 #10
ok - men Textbox8 anvendes dog anderledes i udtrykket vedrørende  txtSkatDKK = TextBox3 * TextBox8 / 100 - her ligner det jo procent

Er ikke med på det du skriver i sidste afsnit "Men af praktiske årsager, vil det være super, hvis det kunne lykkeds med at taste beløbet"
Avatar billede supertekst Ekspert
22. juli 2011 - 14:47 #11
Eks:
INDTASTES
Valutakurs: 120
Brutto: 100
Udbytteskat: 30

BEREGNES
Netto: 70
Udbytte DKK: 84
Skat DKK: ???
Avatar billede JAHT Nybegynder
22. juli 2011 - 15:24 #12
Skat i DKK = 36 (30 * (120/100)

Et eksempel i EUR. Kursen pr. d.d. i EUR er 745,42. Det vil give følgende resultat:

Valutakurs: 745,42
   
I EUR:   
Brutto: 100,00
Udbytteskat:30,00
Netto: 70,00
   
I DKK:   
Brutto: 745,42
Udbytteskat: 223,63
Netto: 521,79
Avatar billede supertekst Ekspert
22. juli 2011 - 15:42 #13
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)
   
    Me.TextBox3 = Format(CDbl(Me.TextBox7) - CDbl(Me.TextBox8), "#,##0.00")
   
    Me.TxtUdbytteDKK = Format(CDbl(Me.TextBox3) * CDbl(Me.TextBox6) / 100, "#,##0.00")
    Me.txtSkatDKK = Format(CDbl(Me.TextBox8) * CDbl(Me.TextBox6) / 100, "#,##0.00")
End Sub
Avatar billede supertekst Ekspert
22. juli 2011 - 15:43 #14
Nu kan du så prøve om det har hjulpet..
Avatar billede JAHT Nybegynder
23. juli 2011 - 10:27 #15
Super. Funger perfekst :-)

Mange tak for hjælpen.

Smider du et svar

Hilsen Jacob
Avatar billede supertekst Ekspert
23. juli 2011 - 10:38 #16
Glæder mig & selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Dynamicweb Software A/S

Solution Tech Lead

Netcompany A/S

Test Specialist

Københavns Erhvervsakademi

IT-supporter elev