Har sökt efter samma problem, hittat några men får inte till det ändå! Du skall inte ha koden i Change. KeyPress och validera med Enter är bättre. Nu ballade jag ur i huvudet. Frågar matte snille ??? Men Obs det är fel på min algoritm, den stämmer vid 25 % men det Varan kostar x kr utan moms Hej igen >Har ej provat vad Niklas hade för ändring än. Bara litet tillägg: Nu har jag löst det så att det passar mig. Alla de variablerna jag drog till med var bara för att förklara tydligare. Om du ska ha fram momsen så räcker det att räkna så här (jag tror det är rätt...lite vimsig i huvet just nu): Jo du har rätt men Vi löste det så här.Procent
Försöker att räkna ut procent av summa med den här koden:
'Procent är 25%
'txtInk.Text = Här visas momsen.
'txtSu.Text = Här är summan.
Private Sub txtSu_Change()
txtInk.Text = (Val((txtSu.Text) / 100) * 20)
End Sub
Har provat det här men samma resultat:
Private Sub txtSu_Change()
txtInk.Text = (Str((txtSu.Text) / 100) * 20)
End Sub
Om det är 100 eller 200 då visar det rätt.
SJ :-ISv: Procent
Ett litet exempel jag hade i min "lådda" . Skriv in tryck Enter
<code>
Option Explicit
Const MOMSEN = 0.25 '25% moms
Private Sub txtMoms_KeyPress(KeyAscii As Integer)
Dim svar As Single
Select Case KeyAscii
Case 8, 13, 44, 46, 48 To 57
If KeyAscii = 44 Then KeyAscii = 46
If KeyAscii = 13 Then
svar = Val(txtMoms) * MOMSEN
MsgBox "Moms blir " & Format$(svar, "0.00 kr")
End If
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub txtSumma_KeyPress(KeyAscii As Integer)
Dim svar As Single
Select Case KeyAscii
Case 8, 13, 44, 46, 48 To 57
If KeyAscii = 44 Then KeyAscii = 46
If KeyAscii = 13 Then
svar = Val(0.2 * (Val(txtSumma) / MOMSEN))
MsgBox MOMSEN * 100 & "% moms är beräknat på " & Format$(svar, "0.00 kr")
End If
Case Else
KeyAscii = 0
End Select
End Sub
</code>Sv: Procent
Jag har betalt 100 kr jag vet att momsen har varit 15 %
På vilken summa har dessa 15% beräknats ??
X = 100 - (X * 0.15) 'här ballar det ur i mitt huvud.Sv: Procent
blir fel om du tex vill ha 15 % . Se frågan här ovanSv: Procent
momsen är p (0<p<1)
Då är det nya priset y
y=x(1+p)
Det du vill veta är nu vad det ursprungspris var:
x=y/(1+p)Sv: Procent
Har provat med 25% bara, skriver jag 100 eller högre räknar det rätt men om det blir 99 eller 150 stämmer inte det. Har jag missat något eller.
Har ej provat vad Niklas hade för ändring än.
SJSv: Procent
Min lösning gjord för ett antal år sedan tål ingen "buggtest" ,"lite snabbt och fel"
Kolla Niklas sätt att se på det hela.
Att ett sådant enkel prob kan ställa till det i huvudet.
En sak kostar 100 kr man vet att dom tar ut 15 % i moms. Vad kostade varan utan moms.
Ex en vara som kostar 93:75 och har 25 % moms kostar 75:00 utan moms.
DSSv: Procent
Enkelt förklarat:
För att få med moms gångar man ju med 1,25.
För att få tillbaka igen gångar man med 0,8.
Detta verkar lite konstigt men det beror på att 1/1,25 är 0,8.
/ACSv: Procent
Tack SvenPon och er andra.
Dim x
Dim y
Dim Sum As Single
Dim svar As Single
Dim MOMSEN As Single
x = 0.2 'Momsbelopp 25%
y = Val(txtSu.Text)
Sum = y * x
svar = Val(txtSu) * 1 / (x + 1)
txtInk = Format$(Sum, "0.00 kr.")
SJSv: Procent
x1=nytt pris, y=moms, x2=gammalt pris, p=momsprocent
y=x2*p
x1=x2+y=x2+x2*p=x2(1+p)
x2=x1/(1+p)
y=x1*p/(1+p)
vilket i fallet moms är
y=x1*(1/4)/(5/4)=x1/5 eller x1*0.2
precis som konstaterats innan. Då hela din kod räcker att skrivas så här:
txtInk = Format$(CDbl(txtSu)*0.2, "0.00 kr.")Sv: Procent
'Ex 25 % 1.25 * nettopris ger svar totalsumma inkl. moms
'Ex 25 % 1/1.25 * totalsumma ger svar exkl. moms
'Ex 25 % 0.25 * nettopris ger svar moms