Kört fast igen... Vet inte hur många gånger jag tjatat om detta . Ok ställer frågan så här: Oki nu tror jag att jag förstår din fråga. Tack...For ?
Börjar bli spagetti snart. Problemet:
Om jag skriver så här i koden blir inte Cdbl med, men ska vara med.
Har provat men får inte till det, kanske någon annat istället för For!
Är osäker om Dim satsen ska med. Kanske det ska vara i någon annan händelse.
Är det någon som kan ge ett handtag?
SJ
Private Sub txtSu_Change()
Dim i '?
Dim txtKr ' ?
Dim txtSu ' ?
For txtKr = 0 To 11
'txtKr skrivs in med siffror det är tolv st "txtKr(0) till txtKr(11)"
'txtInk visar vad som sär momsen på beloppet.
txtInk = Format$(CDbl(txtSu) * 0.2, "0.00 kr") ' Visar summan.
'txtSu visar Summan av som skrivs in i txtKr
txtSu = Format$(CDbl(txtKr(0)), "0.00 kr") 'Visar momsen.
Next txtKr
End SubSv: For ?
Du skall inte ha koden i Change det är verkligen att inbjuda till strul.
Det verkar som alla som börjar med txt är TextBoxar Eller ?
då kan dom ju inte samtidigt vara lokala variable
Då skall du skriva så här så man ser det ex. txtKr(i).Text
Dim i As Long
For i = 0 To 11
'txtKr skrivs in med siffror det är tolv st "txtKr(0) till txtKr(11)"
'txtInk visar vad som sär momsen på beloppet.
txtInk = Format$(CDbl(txtSu) * 0.2, "0.00 kr") ' Visar summan.
'txtSu visar Summan av som skrivs in i txtKr
txtSu = Format$(CDbl(txtKr(i)), "0.00 kr") 'Visar momsen.
Next 'i
'Ex vid 25 % moms : 1.25 * nettopris ger svar inkl.moms
'Ex vid 25 % moms : 1/1.25 * totalsumma ger svar exkl.moms
'Ex vid 25 % moms : 0.25 * nettopris ger svar moms
Skriv vad det är du vill åstadkomma , så löser Vi det här. Ta en koll på Programarkivet:Enkelt MomsprogramSv: For ?
Om du kopierar txtSumma så att det blir tolv st hur ska man skriva så att svaret blir vad som skrivs in i txtSumma?
För då blir ju txtSumma(0) till txtSumma(11)
Är det en bra fråga?
Private Sub txtSumma_KeyPress(KeyAscii As Integer)
Dim svar As Single
Select Case KeyAscii 'tillåt bara siffror punkt Enter BackSpace
Case 8, 13, 44, 46, 48 To 57
If KeyAscii = 44 Then KeyAscii = 46
If KeyAscii = 13 Then
MOMSEN = Val(txtMomsen) / 100
svar = Val(txtSumma) * 1 / (MOMSEN + 1)
MsgBox Val(txtMomsen.Text) & "% moms är beräknat på " _
& Format$(svar, "0.00 kr")
End If
Case Else
KeyAscii = 0
End Select
End SubSv: For ?
Svaret är att du skall hänvisa till just den TextBox :s Index som du jobbar i
I mitt exempel nedan jobbar jag i txtSumma(8).Text
Du skall trycka Enter i aktuell TextBox för uträkning
"Val(txtSumma(Index).Text)"
<code>
Option Explicit
Private Sub txtSumma_KeyPress(Index As Integer, KeyAscii As Integer)
Dim svar As Single
Dim MOMSEN As Single
MOMSEN = 25 ' %
Select Case KeyAscii 'tillåt bara siffror punkt Enter BackSpace
Case 8, 13, 44, 46, 48 To 57
If KeyAscii = 44 Then KeyAscii = 46 ' jag använder alltid (punkt) . som decimalavskiljare
If KeyAscii = 13 Then ' ENTER
MOMSEN = MOMSEN / 100
svar = Val(txtSumma(Index).Text) * 1 / (MOMSEN + 1)
MsgBox "Du jobbar i TextBox " & Index
MsgBox MOMSEN & " % moms är beräknat på " _
& Format$(svar, "0.00 kr")
End If
Case Else
KeyAscii = 0
End Select
End Sub
</code>Sv: For ?
Nu börjar det likna det jag är ute efter. Ska prova mera och återkommer hur det går.
SJ :-)
Det var For jag var ute efter
txtSumma(Index)