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).
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.