10. september 2013 - 15:52Der 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).
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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.
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.