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
Tyttö83
6
1515
Vastaukset
- Opa
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- Kiitos!
Suuri kiitos ja kumarrus Opalle!
- Miksu_82
sulta toi sujuvan niin autappa tyttöä saamaan plussa tehtävästa ja kirjoota sille lisänumerotkin :)
- Kunde
Miksu_82 kirjoitti:
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 :) - Kunde
Miksu_82 kirjoitti:
sulta toi sujuvan niin autappa tyttöä saamaan plussa tehtävästa ja kirjoota sille lisänumerotkin :)
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 - Tyttö83
Kunde kirjoitti:
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 SubKiitos! Mutta tuo on jo liian monimutkainen ymmärrettäväski näin vähäisellä Excelin käyttö osaamisella. :)
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Riikan kukkaronnyöri on umpisolmussa
Kulutus ei lähde liikkeelle, koska kansalaiset eivät usko, että: – työpaikka säilyy – tulot eivät romahda – talous ei h32721Jos vedetään mutkat suoraksi?
Niin kumpaan ryhmään kuulut? A) Niihin, jotka menevät edellä ja tekevät? Vai B) Niihin, jotka kulkevat perässä ja ar1062541Tanskan malli perustuu korkeaan ansioturvaan
Ja vahvoihin työllisyys- ja kotoutumispalveluihin. Suomessa Riikka on leikannut juuri näitä: palkkatukea, työttömyysturv42239Vain vasemmistolaiset ovat aitoja suomalaisia
Esimerkiksi persut ovat ulkomaalaisen pääomasijoittajan edunvalvojia, eivät auta köyhiä suomalaisia.441855- 321443
Anteeksipyyntöni
Jätän tähän anteeksipyyntöni sinulle, koska en voi sanoa sitä missään muuallakaan. Pyydän anteeksi, jos purkamani tuska141433- 1761155
Sydämeni valtiaalle
En täältä aio asioita kysellä. Haluan tuoda tiedoksesi, että pohjimmiltani en ihmisiä tahdo satuttaa ja ajattelen muiden1011134Persu ajoi autoa
Ajoi lapsen yli https://www.iltalehti.fi/kotimaa/a/597a7468-3d1d-455e-bed2-21c1efc31ac1201053Oletko tyytyväinen
Tämän hetkiseen tilanteeseenne? Odotatko, että lähennytte vai yritätkö päästä yli ja eteenpäin?81938