Pitäisi tehdä lottorivi laskuri Excelillä. Osaisiko joku auttaa, miten sellainen tehdään?
Siis tällainen on tehtävän anto:
"Eipä tässä mitään ihmeellistä keksinyt niin että kotitehtävä on
lottorivin arvonta. Jos saat aikaiseksi makron joka tekee exceliin
kuusi satunnaislukua välille 1-37 (vai mikä se suurin numero on
nykyään?) niin saat kotitehtävästä 3. Mieluummin tulosta makro ja
tulokset paperille ja laita aulassa olevaan postilaatikkooni. Ei pidä
sitten hermostua, vaikka et onnistuisikaan tässä tehtävässä. Tehtäviä
tulee lisää...
Jos teet semmosen ohjelman, joka vielä tarkistaa että kaikki numerot
ovat erilaiset ja ovat vieläpä suuruusjärjestyksessä excelissä, saat
4 pistettä. Tässä tapauksessa haluan ohjelman sähköpostitse niin että
voin laittaa sen edelleen kaikille."
Eli tällainen ohjelma me tehtiin koulussa, ja vastaavalla tavalla tulisi se lottorivikin, mutta kun tuostakaan ei oikein ymmärrä niin... :( Luennoitsija ei oikein mielestäni osaa opettaa.
Sub satun()
For i = 1 To 1000
Cells(2, 2) = "=rand()"
j = Int(10 * Cells(2, 2)) 1
Cells(1, 1) = j
Cells(5, j) = Cells(5, j) 1
Next i
End Sub
Siis tällainen on tehtävän anto:
"Eipä tässä mitään ihmeellistä keksinyt niin että kotitehtävä on
lottorivin arvonta. Jos saat aikaiseksi makron joka tekee exceliin
kuusi satunnaislukua välille 1-37 (vai mikä se suurin numero on
nykyään?) niin saat kotitehtävästä 3. Mieluummin tulosta makro ja
tulokset paperille ja laita aulassa olevaan postilaatikkooni. Ei pidä
sitten hermostua, vaikka et onnistuisikaan tässä tehtävässä. Tehtäviä
tulee lisää...
Jos teet semmosen ohjelman, joka vielä tarkistaa että kaikki numerot
ovat erilaiset ja ovat vieläpä suuruusjärjestyksessä excelissä, saat
4 pistettä. Tässä tapauksessa haluan ohjelman sähköpostitse niin että
voin laittaa sen edelleen kaikille."
Eli tällainen ohjelma me tehtiin koulussa, ja vastaavalla tavalla tulisi se lottorivikin, mutta kun tuostakaan ei oikein ymmärrä niin... :( Luennoitsija ei oikein mielestäni osaa opettaa.
Sub satun()
For i = 1 To 1000
Cells(2, 2) = "=rand()"
j = Int(10 * Cells(2, 2)) 1
Cells(1, 1) = j
Cells(5, j) = Cells(5, j) 1
Next i
End Sub
Vastaukset 6
Vanhimmat
Makro vaikka näin:
Sub lotto()
Dim v1 As Integer
Dim v2 As Integer
Dim v3 As Integer
Dim v4 As Integer
Dim v5 As Integer
Dim v6 As Integer
v1 = Int((37 * Rnd) 1) ' Generate rorom value between 1 or 37.
v2 = Int((37 * Rnd) 1)
While (v2 = v1)
v2 = Int((37 * Rnd) 1)
Wend
v3 = Int((37 * Rnd) 1)
While ((v3 = v1) Or (v3 = v2))
v3 = Int((37 * Rnd) 1)
Wend
v4 = Int((37 * Rnd) 1)
While ((v4 = v1) Or (v4 = v2) Or (v4 = v3))
v4 = Int((37 * Rnd) 1)
Wend
v5 = Int((37 * Rnd) 1)
While ((v5 = v1) Or (v5 = v2) Or (v5 = v3) Or (v5 = v4))
v5 = Int((37 * Rnd) 1)
Wend
v6 = Int((37 * Rnd) 1)
While ((v6 = v1) Or (v6 = v2) Or (v6 = v3) Or (v6 = v4) Or (v6 = v5))
v6 = Int((37 * Rnd) 1)
Wend
Range("A1").Value = v1
Range("A2").Value = v2
Range("A3").Value = v3
Range("A4").Value = v4
Range("A5").Value = v5
Range("A6").Value = v6
'sorttaus
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B1").Select
End Sub
Suuri kiitos ja kumarrus Opalle!
sulta toi sujuvan niin autappa tyttöä saamaan plussa tehtävästa ja kirjoota sille lisänumerotkin :)
Aloittelijan koodia yritin tehdä...
for next silmukat ja select- selection jutskaa :)
Tällä voi vaikka voittaakin...
Option Explicit
Function Lotto(Alaraja As Integer, Yläraja As Integer, Määrä As Integer, Lisänumerot As Integer) As String
Dim Taulu As Variant
Dim a As Integer
Dim b As Integer
Dim Temppi As Integer
Application.Volatile
ReDim Taulu(Alaraja To Yläraja)
For a = Alaraja To Yläraja
Taulu(a) = a
Next a
For a = Yläraja To Alaraja 1 Step -1
b = Int(Rnd() * (a - Alaraja 1)) Alaraja
Temppi = Taulu(b)
Taulu(b) = Taulu(a)
Taulu(a) = Temppi
Next a
Range("A1:A" & Määrä Lisänumerot 1) = ""
For a = Alaraja To Alaraja Määrä Lisänumerot - 1
Range("A" & a) = Taulu(a)
Next a
Range("A1:A" & Määrä).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A" & Määrä 1 & ":A" & Määrä Lisänumerot).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Rows("8:8").Insert Shift:=xlDown
End Function
Sub Testi()
Lotto 1, 39, 7, 3
End Sub
Kiitos! Mutta tuo on jo liian monimutkainen ymmärrettäväski näin vähäisellä Excelin käyttö osaamisella. :)