tvc
Seniormester
06. maj 2006 - 21:50
Der er
9 kommentarer og 1 løsning
Problemer med at skrive decimaler i celle via formular
Hej Jeg har et problem med formateringen af mine værdier og den værdi min formular skriver ned i min Excel celle. Når jeg i min formular i eksempelvis tekstfeltet txtFST skriver 5,55 så skriver den kun de 5,00. Jeg anvender nedenstående koder. En til at skrive mine indtastede værdier ned i regnearket og en til at opdatere af formularen. Hvad er der galt? ----------------------------- Private Sub cmdGem_Click() Range("FSTuge").Value = Val(txtFSTuge.Value) Range("Stam_FST").Value = Val(txtFST.Value) Range("Stam_FSP").Value = Val(txtFSP.Value) Range("Stam_100P").Value = Val(txt100P.Value) End Sub Sub UpdateFlex() 'Opdatering af stamoplysninger txtFSTuge.Value = Range("FSTuge").Value txtFSTuge = Format(txtFSTuge, "#,##0") txtFST.Value = Range("Stam_FST").Value txtFST = Format(txtFST, "#,##0.00") txtFSP.Value = Range("Stam_FSP").Value txtFSP = Format(txtFSP, "#,##0.00") txt100P.Value = Range("Stam_100P").Value txt100P = Format(txt100P, "#,##0.00") End Sub Hilsen TVC
Annonceindlæg fra Cognizant
prøv med Str : fx. Range("FSTuge").Value = Str(Val(txtFSTuge.Value))
tvc
Seniormester
06. maj 2006 - 23:20
#2
Det virker desværre ikke. Den fjerner stadig mine decimaler: Hele min kode ser således ud for formularen. Private Sub cmdInterneTimer_Click() frmOpgørelse_InterneTimer.Show End Sub Private Sub cmdRediger_Click() Rediger End Sub Private Sub cmdGem_Click() Range("Tår").Value = txtÅr.Value Range("SatsT").Value = txtSatsT.Value Range("Sats0").Value = txtSats0.Value Range("Sats1").Value = txtSats1.Value Range("Sats2").Value = txtSats2.Value Range("Sats3").Value = txtSats3.Value Range("Sats4").Value = txtSats4.Value Range("Sats5").Value = txtSats5.Value Range("Sats1fra").Value = txtfrauge0.Value Range("Sats2fra").Value = txtfrauge1.Value Range("Sats3fra").Value = txtfrauge2.Value Range("Sats4fra").Value = txtfrauge3.Value Range("Sats5fra").Value = txtfrauge4.Value Range("Sats6fra").Value = txtfrauge5.Value Range("FSTuge").Value = Val(txtFSTuge.Value) Range("Stam_FST").Value = Val(txtFST.Value) Range("Stam_FSP").Value = Val(txtFSP.Value) Range("Stam_100P").Value = Val(txt100P.Value) Gem End Sub Sub Rediger() txtÅr.Enabled = True txtSatsT.Enabled = True txtSats0.Enabled = True txtSats1.Enabled = True txtSats2.Enabled = True txtSats3.Enabled = True txtSats4.Enabled = True txtSats5.Enabled = True txtfrauge0.Enabled = True txtfrauge1.Enabled = True txtfrauge2.Enabled = True txtfrauge3.Enabled = True txtfrauge4.Enabled = True txtfrauge5.Enabled = True txtFSTuge.Enabled = True txtFST.Enabled = True txtFSP.Enabled = True txt100P.Enabled = True cmdRediger.Visible = False cmdGem.Visible = True End Sub Sub Gem() txtÅr.Enabled = False txtSatsT.Enabled = False txtSats0.Enabled = False txtSats1.Enabled = False txtSats2.Enabled = False txtSats3.Enabled = False txtSats4.Enabled = False txtSats5.Enabled = False txtfrauge0.Enabled = False txtfrauge1.Enabled = False txtfrauge2.Enabled = False txtfrauge3.Enabled = False txtfrauge4.Enabled = False txtfrauge5.Enabled = False txtFSTuge.Enabled = False txtFST.Enabled = False txtFSP.Enabled = False txt100P.Enabled = False cmdRediger.Visible = True cmdGem.Visible = False UpdateFlex End Sub Private Sub cmduka_Click() frmOpgørelse_uks.Hide frmOpgørelse_uka.Show End Sub Private Sub cmduks_Click() frmOpgørelse_uka.Hide frmOpgørelse_uks.Show End Sub Private Sub UserForm_Activate() UpdateFlex Gem End Sub Sub UpdateFlex() '----- Opdatering af Flexsaldo og feriesaldo ----- lblFeriesaldoP.Caption = Format(Range("FeriesaldoP").Value, "#,##0.00") lblFeriesaldoT.Caption = Format(Range("FeriesaldoT").Value, "#,##0.00") lblFeriesaldoI.Caption = Format(Range("FeriesaldoI").Value, "#,##0.00") lblAfholdtFerie.Caption = Format(Range("AfholdtFerie").Value, "#,##0.00") lblFeriesaldoU.Caption = Format(Range("FeriesaldoU").Value, "#,##0.00") lblAfholdtEgenRegning.Caption = Format(Range("AfholdtEgenRegning").Value, "#,##0.00") lblFlexP.Caption = Format(Range("FlexP").Value, "#,##0.00") lblOpspar0.Caption = Format(Range("Opsparet0").Value, "#,##0.00") lblOpspar50.Caption = Format(Range("Opsparet50").Value, "#,##0.00") lblOpsparI.Caption = Format(Range("OpsparetIAlt").Value, "#,##0.00") lblAnvendt.Caption = Format(Range("AnvendtFI03").Value, "#,##0.00") lblOverarbS.Caption = Format(Range("OverarbSaldo").Value, "#,##0.00") lblUger.Caption = Range("AntalUger").Value lblDage7.Caption = Range("AntalDage7").Value lblDage6.Caption = Range("AntalDage6").Value lblLøntilsvar.Caption = Format(Range("Løntilsvar").Value, "#,##0.00") 'Opdatering af stamoplysninger txtÅr.Value = Range("Tår").Value txtSatsT.Value = Range("SatsT").Value txtSats0.Value = Range("Sats0").Value txtSats1.Value = Range("Sats1").Value txtSats2.Value = Range("Sats2").Value txtSats3.Value = Range("Sats3").Value txtSats4.Value = Range("Sats4").Value txtSats5.Value = Range("Sats5").Value txtfrauge0.Value = Range("Sats1fra").Value txtfrauge1.Value = Range("Sats2fra").Value txtfrauge2.Value = Range("Sats3fra").Value txtfrauge3.Value = Range("Sats4fra").Value txtfrauge4.Value = Range("Sats5fra").Value txtfrauge5.Value = Range("Sats6fra").Value txttiluge0.Caption = "til uge " & Range("Sats1til").Value txttiluge1.Caption = "til uge " & Range("Sats2til").Value txttiluge2.Caption = "til uge " & Range("Sats3til").Value txttiluge3.Caption = "til uge " & Range("Sats4til").Value txttiluge4.Caption = "til uge " & Range("Sats5til").Value txttiluge5.Caption = "til uge " & Range("SidsteUge").Value txtFSTuge.Value = Range("FSTuge").Value txtFSTuge = Format(txtFSTuge, "#,##0") txtFST.Value = Range("Stam_FST").Value txtFST = Format(txtFST, "#,##0.00") txtFSP.Value = Range("Stam_FSP").Value txtFSP = Format(txtFSP, "#,##0.00") txt100P.Value = Range("Stam_100P").Value txt100P = Format(txt100P, "#,##0.00") End Sub
kan du ikke undlade at bruge Val Val("5,55") gir 5 prøv denne : Sub test() Dim x x = "5,56" [a1].Value = Val(x) [a2].Value = Str(x) End Sub
Prøv at bruge CDbl istedet for val Range("FSTuge").Value = CDbl(txtFSTuge.Value)
tvc
Seniormester
07. maj 2006 - 11:35
#5
Hej begge Begge jeres forslag virker. Men hvad er forskellen på Str og CDbl? Hilsen TVC
C-funktionerne er beregnet til at konvertere mellem datatyper. De bør bruges fremfor Val, især når man ikke kører amerikansk system. Hvorfor Str fungerer, er faktisk lidt mystisk, idet Str er beregnet til at konvertere en værdi til en streng.
tvc
Seniormester
07. maj 2006 - 15:29
#7
Hej Bak Der løste du så det problem som Str medførte. Jeg kunne ikke forstå hvordan 200,50 indtastet i min formular første gang jeg lod data fra formularen skrive i arket viste 200,50 og hvis jeg så åbnede formularen igen og ændrede andre steder i formularen blev de 200,50 pludselig til 2005,00. Jeg har nu rettet Str til CDbl og nu virker det hele. Excelent -> Tak for dit bud, men jeg tror det er Bak der denne gang skal have point - håber det er i orden ;-) Bak smider du et svar? Tak for hjælpen TVC
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig