07. januar 2007 - 14:21Der er
15 kommentarer og 1 løsning
Afrunding igen
Jeg slås med afrunding i vba.
Jeg ønsker at afrunde resultatet i celle c1 til antal decimaler givet i celle d1. Når der er afrundet skal der kunne regnes videre med resultatet i c1 uden at der er flere decimaler spøgende i baggrunden (altså antallet af decimaler skal i videre beregninger være som ønsket i celle d1) Er der en kode hertil?
Hvis du taster værdien ind i Celler enkeltvis, så virker denne på hele C kolonnen.
Koden skal være i arkets modul
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 Then 'virker på alle celler i kolonne C Application.EnableEvents = False Target = Round(Target, Target.Offset(0, 1)) Application.EnableEvents = True End If End Sub
Har testet.. Hvis jeg arbejder videre med forslaget fra hugohann vil der kunne fremkomme fejl som denne: 0,649 - 0,564 = 0,0850000000000001 Kabbaks ide er jeg ikke helt med på da jeg ønsker at celle d1 altid angiver antallet af decimaler i tallet i celle c1 og smider flere decimaler væk efter afrunding.
Her virker den kun på C1 og den virker kun hvis du fysisk taster eller kopierer tallene ind i cellen
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$C$1" Then 'virker på C1 Application.EnableEvents = False Target = Round(Target, [D1]) Application.EnableEvents = True End If End Sub
Jeg har forsøgt mig lidt frem efter ovennstående indlæg, men kan stadigvæk fremprovokere fejl. Måske er det fordi mine tal fremkommer ved slumpfunktionen. Jeg prøver at komme lidt videre ved at henvise til: http://www.data.lundgraasten.dk/Subtraktion.xls Jeg har her forsøgt mig med det sidste forslag fra kabbak
Selvom jeg gør kolonnerne nok så brede hjælper det ikke. Resultatet af hver enkelt opgave indtastes i celle i14 og når der skal rettes opgave trykkes på knappen "Ret opgaver". Det indtastede resultat samenlignes med j9. Selvom tallene i i14 og j9 er lig med hinanden forekommer der af og til meddelelse om at opgaven ikke er regnet rigtig. Er der fejl i makroerne bag knapperne?
i Sub Resultatundersøgelse() linie 7 hvor følgende linie er : If [i14] = [aj9] And [i14] <> "" Then kan du prøve at ændre til : If Round([i14], 2) = Round([aj9], 2) And [i14] <> "" Then
her er der afrundet til 2 decimaler, men det skal du ændre til det antal decimaler som er valgt i arket,- har ikke lige kunnet finde hvor i koden dette angis men hvis det fx. var i en celle fx. A1, så skal linien se sådan ud:
If Round([i14], range("A1").value) = Round([aj9], range("A1").value) And [i14] <> "" Then
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.