Avatar billede jath08ac Forsker
08. juni 2018 - 08:22 Der er 2 kommentarer og
1 løsning

Problemer med formatering og beregning textbox i userform

Hej,

Jeg har lavet nedenstående koder som laver en udregning og samtidig formaterer talværdierne, således at tallene står pænt.

Men det fungerer ikke rigtigt. Det er ligesom om, at formateringen gør, at hvis beregningen er 7,45 så bliver der vist 745,00.

Håber at nogen kan hjælpe :-)

Hermed koden:
Det drejer sig om tre textbox som hedder:
- txtUdlægR1 (input)
- txtKursR1 (input)
- txtBeløbR1 (viser beregningen)

Private Sub txtUdlægR1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

If txtKursR1.Value = "" And txtUdlægR1.Value <> "" Then
    txtBeløbR1.Value = CDec(txtUdlægR1.Value)
    'sætformat 1
    adder
ElseIf txtKursR1.Value <> "" And txtUdlægR1.Value <> "" Then
    txtBeløbR1.Value = (CDec(txtUdlægR1.Value) * CDec(txtKursR1.Value)) / CDec(100)
    'sætformat 1
    adder
ElseIf txtUdlægR1.Value = "" Then
    txtBeløbR1.Value = CDec(0)
    'sætformat 1
    adder
End If
End Sub



Private Sub txtKursR1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

If txtKursR1.Value = "" And txtUdlægR1.Value <> "" Then
    txtBeløbR1.Value = CDec(txtUdlægR1.Value)
    'sætformat 1
    adder
ElseIf txtKursR1.Value <> "" And txtUdlægR1.Value <> "" Then
    txtBeløbR1.Value = (CLng(txtUdlægR1.Value) * CLng(txtKursR1.Value)) / CLng(100)
    'sætformat 1
    adder
End If
End Sub

Private Sub adder()
    Me.txtBeløbR1 = erUdfyldt(Me.txtBeløbR1)
Me.lblUdlægIAlt.Caption = Format(Application.Sum(CDec(txtBeløbR1.Value), CDec(txtBeløbR2.Value), osv.
end sub

Private Function erUdfyldt(tb As Control)
    If tb = "" Then
        erUdfyldt = 0 * 1
    Else
        erUdfyldt = tb
    End If
End Function

Private Sub sætformat(tbNr)
Dim cc As Object
    Set cc = UserForm2.Controls("txtBeløbR" & CStr(tbNr))
    cc.Value = Format(cc, "#,##0.00")
End Sub
Avatar billede kim1a Ekspert
08. juni 2018 - 08:56 #1
Det er det sidste stykke:
cc.Value = Format(cc, "#,##0.00")

# betyder den skal skrive det sådan
0 betyder den skal sætte på noget der, om ikke andet så nul.

Læs mere her:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings
Avatar billede jath08ac Forsker
08. juni 2018 - 09:26 #2
Det hjælper ikke :-(
Avatar billede kim1a Ekspert
08. juni 2018 - 09:46 #3
Så hvis du skriver:
cc.Value = Format(cc, "0.00")

Så virker det ikke?
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

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