1. Tämä sivusto käyttää keksejä (cookie). Jatkamalla sivuston käyttämistä hyväksyt keksien käyttämisen. Lue lisää.

Ratkaistu Excel ja automaattilajittelu

Viestiketju Ajuri- ja softaongelmat -osiossa. Ketjun avasi odzmo 12.07.2021.

  1. odzmo

    odzmo Regular member

    Liittynyt:
    05.11.2006
    Viestejä:
    143
    Kiitokset:
    24
    Pisteet:
    28
    Esimerkkinä seuraavat tiedot/taulukko:
    Sarake A Sarake B
    Rivi 1 Antti 12
    Rivi 2 Bertta 14
    Rivi 3 Cecilia 15
    Rivi 4 Dave 22

    Miten onnistuu (helposti) taulukon automaattinen lajittelu suuruusjärjestykseen aina kun jonkun henkilön data sarakkeessa B vaihdetaan?
    Esim. Bertan tieto vaihdetaan 14 -> 16, jolloin enterin painalluksella Bertan rivi vaihtuu riviksi 3 (ja Cecilian rviksi 2). Eli taulukon tiedot olisivat automaattisesti suuruusjärjestyksessä datamuutoksen jälkeen.

    Juu tiedän, että voin valita solun B1 ja painaa "sort a->z" -nappulaa ... mutta hiirikäsi väsyy, jos rivejä on paljon.
     
  2.  
  3. OneMember

    OneMember Active member

    Liittynyt:
    12.01.2006
    Viestejä:
    3,188
    Kiitokset:
    56
    Pisteet:
    78
    Tämän tyylinen automatisointi vaatii makrojen käyttöä.

    Tein VBA:lla hieman vaikeamman kautta, mutta laitan kuvan alle pelkistetyn koodin.
    [​IMG]

    1. Avaa työkirja ja paina hiiren oikealla napilla alalaidassa aktiivista välilehteä -> valitse Näytä koodi.
    2. Microsoft Visual Basic for Applications -ikkunassa valitse vasemman laidan listasta haluttu taulukko.
    3. Ikkunan pitäisi olla vakiona tyhjä, joten liitä seuraava koodi siihen:
    Koodi:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("C2").Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    
    Huom 1. Muokka koodissa oleva "C2" sinun otsikkosoluksi ja "C3" mistä eteenpäin noita tietoja automaattisesti järjestellään.

    Huom 2. Taulukko pitää nyt tallentaa makroja tukevaan muotoon. VBA:n ikkunasta paina sinistä Save-nappia ja käytä tiedostomuotona: Excel-työkirja (makrot käytössä) (*xlsm)

    (Normaali Excel-työkirja *xlsx tai vielä vanhempi *.xls eivät tue makroja)


    Viitteenä ohje englanniksi.
     
    odzmo kiitti tästä.
  4. odzmo

    odzmo Regular member

    Liittynyt:
    05.11.2006
    Viestejä:
    143
    Kiitokset:
    24
    Pisteet:
    28

Jaa tämä sivu