Jeg ved ikke om du kan overskue det, men nu er den bygget ind i maroen, den er som kolonne 2 i variablen
Public Sub TilfældigTal() Dim A As Long, AntalTal As Long, X As Long Randomize ' starter randomize generatoren Dim Tal() As Variant AntalTal = 3 'der er her plads til 3 værdier 0 bruges ikke, 'hvis der skal laves flere værdier, rettes 3 tallet Mindste = [I6] 'Mindste i celle I6 og Storste = [G6] 'Storste i celle G6 Divisor = [K6] 'Divisor If (Mindste = Storste) Or (Mindste > Storste) Then MsgBox "Mindste og største må ikke have samme værdi og" & vbCrLf & "Største skal altid være større end mindste" End If Decimaler = [J6] 'J6 angiver antallet af decimaler ReDim Tal(AntalTal, 2)
For X = 0 To 2 ' to kolonner posigtive tal i første (0) og negative i den anden(1) A = 0 Do A = A + 1 Tal(A, X) = Round((Rnd() * (Storste - Mindste + 1) + Mindste), Decimaler) If X = 1 Then Tal(A, X) = Tal(A, X) * -1
For I = 0 To A - 1 If Tal(I, X) = Tal(A, X) Then A = A - 1 ' hvis tallet er brugt, laves en ny Next If X = 2 Then If Tal(A, X) Mod Divisor <> 0 Then A = A - 1 ' tjekker mod divisor, hvis der bliver rest, laves en ny End If If X = 1 Then If Tal(I, 0) + Tal(I, 1) < 0 Then A = A - 1 'Tjekker om resultatet er mindre end 0, hvis sand laves en ny End If Loop Until A = AntalTal Next 'de fundne værdier skrives til cellerne ' Posigtive tal : Negative tal : Tal tjekket mod divsor : Devisor skrives også i arket [B14] = Tal(1, 0): [C14] = Tal(1, 1): [F14] = Tal(1, 2): [g14] = Divisor [B15] = Tal(2, 0): [C15] = Tal(2, 1): [F15] = Tal(2, 2): [g15] = Divisor [B16] = Tal(3, 0): [C16] = Tal(3, 1): [F16] = Tal(3, 2): [g16] = Divisor
' her fortsættes eventuelt med flere celler, men husk at rette 3 tallet, ved AntalTal End Sub
Godt! Lige til at bruge. ... og hvad så hvis jeg vil bruge det uden makro som når jeg dividerer helt tal med helt tal: =(HELTAL(SLUMP()*HELTAL((B1+A1)/A1))*A1).... men med decimaltal divideret med helt tal?
ok, men når jeg bruger formlen =(HELTAL(SLUMP()*HELTAL((B1+A1)/A1))*A1) får jeg kun tal som 3 går op i. Ved 15/01-2006 18:49:31: 3 går jo ikke op i 5. Udfaldet skulle så have været 6 for at divisionen går op når der i j6 er angivet 0 for antal decimaler.
Det jeg gerne vil have som udfald er netop tal hvor divisionen går op
Det var altså resultatet, der skulle give det antal decimaler, du mente. Men pas på at du ikke laver største og mindste for snæver, ved 0 decimaler.
Hvis du bruger 7 som divisor, skal spændet være minst fra 7 til 21, da for at få 3 forskellige resultater, bliver både 7 14 og 21 brugt.
Synes godt om
Ny brugerNybegynder
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.