makron luonti kiinnostais

Sellainen kysymys vaan ois et ku en oo ennen tehny makroja ja haluaisin oppia. Nyt ku esim. haluaisin tehdä ja täällä näyttää olevan paljon makroja mut mihin ja miten ne laitetaan. Otetaan vaikka sellainen ku luin tänään:

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


Onko se vaikea neuvoa ja onko väliä onko suomenkielinen excel tai englannin. Yritin kyl kopioita sen johokin mut en saanu mitään järkevää aikaiseks. Itsellä on suomenkielinen excel.
3338
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Näin kirjoitin jokin aika sitten, auttaisiko tämä sinua:

http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4500000000000708&posting=22000000023341770


nuo kohta 4 ja 5 pitäisi vähän muttaa sinulle, laitan sinulle tuonne tekstiin sinun vaihtoehdon:


yritän antaa ohjeet.

1 klikkaa haluamasi taulukon välilehteä hiiren oikealla napilla

2 valitse listasta "view code", suomeksi ehkä "näytä koodi"

3 näkyviin tulee nyt se koodi/makrojen käsittely ikkunat, vähän huomioita, katsele mutta älä tee mitään. vasemmalla luettelo muistissa olevista excel työkirjoista, tätä listaa sanotaan projekti ikkunaksi. jokaisessa työkirjan sisällä on luettelo olioista jotka kuuluvat kyseiselle työkirjalle, eli työkirjan taulukko oliot itse työkirja olio ( Thisworkbook ) ja modulit joihin kunde yleensä viitta ( " ja moduuliin... " ). klikkaamalla kaksi kertaa haluttua oliota tai modulia saat avautuu ikkuna ( koodi ikkunan ) johon voit lisätä koodia/makroja kyseiselle oliolle/modulille. Eli jos teit kohdat 1 ja 2 projekti ikkunassa on valittuna se taulukko jonka valitsit kohdassa 1, ja oikealla puolella pitäisi olla tuon taulukon ikkuna johon voit lisätä koodia. tuo valittu olio on kuitenkin nyt väärin koska printtaus suoritetaan työkirja oliosta ja koodi kuuluu työkirja olioon (ThisWorkbook)


----sinun vaihtoehto---

4 jatketaan, eli nyt voit tehdä perässä, klikkaa kaksi kertaa sanaa "Module1", nyt aukeaa tuon modulin koodi ikkuna.


5 tuohon ikkunaan kopioi ja liitä haluttu koodi

--------------------------------------


6 työkalu rivin vasemmassa laidassa on Excelin kuvake josta voit sulkea nämä koodi ikkunat ja palata takaisin excelin normaali näkymään, klikkaa sitä, löytyy varmaan jostain valikostakin.

7 tallenna työkirja ja testaa esikatselulla miten meni. Loppu.

Tämän tarkemmin minä en osaa asiaa esittää kysäise lisää ja kyllä joku muu antaa parempia ohjeita tilanteen mukaan.

lue pari kertaa ohjeet läpi ja yritä omaksua santa moduli, olio taulukko, työkirja olio, ThisWorkbook olio, ja tärkeää on löytää ne projekti ikkunasta ja saada koodi ikkuna esiin

Äänestä
  • Nyt on vielä sellainen juttu etten löydää mistään tota "Module1" sanaa. Yritin kyllä kopioita joka paikkaan mutten saanu mitään vielä selvää. Jos avaan taulukon niin tyhjää täynnä. Tai pitääkö jotain painaa jossain et rupeais tapahtuu? Ajattelin kokeilla huvikseen jotain makroa ja yritin kopioita sellaiselta sivulta kun:

    http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4500000000000326&posting=22000000004884000

    Riittääkö se kun maalaan sen jutun siniseks niinku edelliseen viestiin olin kopioinu ja kopioin sen sinne koodi ikkunaan.

    Ihan tumpelo kun vielä oon :-(

    Äänestä

  • öeczi kirjoitti:

    Nyt on vielä sellainen juttu etten löydää mistään tota "Module1" sanaa. Yritin kyllä kopioita joka paikkaan mutten saanu mitään vielä selvää. Jos avaan taulukon niin tyhjää täynnä. Tai pitääkö jotain painaa jossain et rupeais tapahtuu? Ajattelin kokeilla huvikseen jotain makroa ja yritin kopioita sellaiselta sivulta kun:

    http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4500000000000326&posting=22000000004884000

    Riittääkö se kun maalaan sen jutun siniseks niinku edelliseen viestiin olin kopioinu ja kopioin sen sinne koodi ikkunaan.

    Ihan tumpelo kun vielä oon :-(

    Jaaha, ei ollut moduulia valmiina, ei hätää, yritetäänpä lisätä sellainen sinulle. Katso ensi tuota linkkiä jonka löysin:

    http://www.valt.helsinki.fi/blogs/tvt-taulukko/makrot.htm


    Siinä linkissä on kuva projekti ikkunasta jossa näkyy ylempänä "Työkirjan" nimi "Koe.xls". sinulla on joku muu nimi, mutta napsauta sitä nimeä hiiren oikealla napilla ja valitse "Lisää..." ja " Moduli"

    Nyt pitäisi olla sinulla moduli tuossa työkirjassa, napsauta sitä modulia kaksi kertaa niin aukeaa modulin "Koodi ikkuna", laita koodit sinne.

    Ja lue tuo annettu linkki uudelleen.

    Äänestä

Kommentoi aloitusta


öezci kirjoitti:

Sellainen kysymys vaan ois et ku en oo ennen tehny makroja ja haluaisin oppia. Nyt ku esim. haluaisin tehdä ja täällä näyttää olevan paljon makroja mut mihin ja miten ne laitetaan. Otetaan vaikka sellainen ku luin tänään:

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


Onko se vaikea neuvoa ja onko väliä onko suomenkielinen excel tai englannin. Yritin kyl kopioita sen johokin mut en saanu mitään järkevää aikaiseks. Itsellä on suomenkielinen excel.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu