Avatar billede Basse25 Novice
10. september 2013 - 15:52 Der er 6 kommentarer og
1 løsning

Datavalidering - Antal decimaler

Hej

Kan man bruge datavalidering til, at angive at et tal skal udfyldes med et bestemt antal decimaler? Jeg har prøvet med datavalidering/decimal samt med tekstlængde, men dette virker ikke efter hensigten. Kan man bruge en brugerdefineret formel?

Hvis der f.eks. tastes 12,98 eller 138,997, men antallet af decimaler skal udfyldes med 4 - Findes der så en formel på det? Jeg er med på, at jeg kan formatere tallene til 4 decimaler under formateringen af celler, men jeg er ude efter, at der skal tages stilling til, om der er 4 decimaler f.eks. 138,9976 (ved formatering af celler med 4 decimaler vil der jo blot blive skrevet et 0 til sidst, såfremt der kun indtastes 3 decimaler).
Avatar billede jens48 Ekspert
10. september 2013 - 17:34 #1
Hvis du formatterer cellen med @ vil tallet blive vist som indtastet, og så kan nedenstående makro give en advarsel, hvis der ikke står 4 decimaler efter kommaet. Et tal der på 4. decimal ender på nul, vil uden @-formatteringen blive set som havende 3 decimaler.
Makroen indlæser en advarsel i cellen til højre for den aktive celle. Makroen er lavet til, at det kun er A1, der kan indtastes i. Det kan man ændre vilkårligt, ligesom advarslen kan blive vist i en boks, hvis man ønsker det. Det oprindelige indhold af cellen bliver ikke ændret, hvis der ikke er 4 cifre efter kommaet i det nye tal.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
Dim x As Integer
x = InStr(ActiveCell.Value, ",")
If Len(ActiveCell) - x <> 4 Then
Application.Undo
ActiveCell.Offset(0, 1) = " Der skal være 4 decimaler efter kommaet"
Else
ActiveCell.Offset(0, 1) = ""
End If
End If
End Sub
Avatar billede sdh Mester
12. september 2013 - 15:18 #2
Du kan godt benytte dig af datavalidering.
Marker det område der skal valideres på - eksempelvis A1:G100.
Vælg datavalidering - under tillad vælg brugdefineret - indsat følgende formel: =LÆNGDE(MIDT(A1;FIND(",";A1;1)+1;100))=4.
Dette virker for mig.
Avatar billede jens48 Ekspert
12. september 2013 - 15:36 #3
Elegant, men husk stadig at formattere cellerne med @. Elllers virker det ikke, hvis sidste ciffer er nul
Avatar billede Basse25 Novice
25. september 2013 - 07:49 #4
Det virker helt fint - Tak for hjælpen:-).

Vil du smide et svar, så jeg kan give dig dine point?
Avatar billede sdh Mester
25. september 2013 - 08:25 #5
Hvilken løsning valgte du?.
Eller sagt på en anden måde hvem vil du tildele pointene -
Jens - mig eller split.?
Avatar billede Basse25 Novice
10. oktober 2013 - 08:04 #6
Jeg valgte Jens' løsning.
Avatar billede jens48 Ekspert
10. oktober 2013 - 09:03 #7
Så får du et svar
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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

Forsikrings- og pensionsakademiet A/S

IT-teknisk profil

Lyngsøe Rainwear ApS

ERP & E-commerce Systemansvarlig

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Nye kolleger søges til IT Stab i Forsvaret