laskentataulukon valinta

Moi, pitäisi saada "yleismakro" joka valitsee aina aktiivisen laskentataulukon vasemmanpuoleisen laskentataulukon aktiiviseksi, eli ei saisi viitata mihinkään absoluuttiseen laskentataulukon nimeen. Kiitos jo etukäteen.
12746
Äänestä

Muut lukivat myös

Vastaukset 12

Vanhimmat

Onnistuisiko tällä:

Sub Edellinen()
Dim I As Long
I = ActiveSheet.Index
Do
I = I - 1
If I = 0 Then I = Worksheets.Count
Loop Until Worksheets(I).Visible = True
Worksheets(I).Activate
End Sub

Jos aktiivinen taulukko on ensimmäinen (vasemmanpuoleisin) aktivoidaan viimeinen.


- Mika

Äänestä

> Moi, pitäisi saada "yleismakro" joka valitsee aina aktiivisen laskentataulukon

Makro pitää laittaa henkilökohtaiseen makro kirjaan jos haluat että makro on käytössä aina, laita sitten makrolle joku hyvä näppäin yhdistelmä, niin saat ajettua mkron aina kuin haluat.


> vasemmanpuoleisen laskentataulukon aktiiviseksi

olisiko tämä mitä tarkoitit:

Sub aktivoiEdellinen()

If ActiveSheet.Index > 1 Then Sheets(ActiveSheet.Index - 1).Activate

End Sub

Äänestä
  • jaha, olin vähän hidas joku muu kerkesi sillä aikaa kun kirjoittelin vastausta ( ja vastasin pariin sähköpostiin samalla ).

    Äänestä

että allaolevat makrot eivat toimi oikein. Ei ole excelia tässä hotellin koneessa, mutta entapa jos tyokirja sisaltaa kaavioita :-)ja kumpikaan ei kasitellyt viimeista taulukkoa ekaa tosin kyllakin...
palaan parin pv paasta asiaan, jos muut ei ole korjannneet tai olin vaarassa
Keep exceling

Äänestä
  • Nappasin tuossa yhden 4 taulukkoisen työkirjan, laitoin jokaiseen taulukkoon yhden kaavion, painoin näppäintä ja taulukoksi tuli aina edellinen ( vasen ) taulukko, otin pari muuta työkirjaa esiin samanaikaisesti ja painoin näppäimiä ja joka kerta valitsi edellisen ( vasemman ) taulukon.

    Yleensä se on niin että jos tarpeeksi monimutkaisen esimerkin ottaa, tulee eteen sekin tilanne että ei toimi, mutta eiköhän sitten ratkaista tuo ongelma kun joku törmää tuohon tulevaan ongelmaa.

    Toki jos kunde jo etukäteen tietää mikä voisi aiheuttaa ongelmia, vinkki otetaan kiitollisuudessa vastaan jo etukäteen.

    Äänestä

  • Nimimerkki kirjoitti:

    Nappasin tuossa yhden 4 taulukkoisen työkirjan, laitoin jokaiseen taulukkoon yhden kaavion, painoin näppäintä ja taulukoksi tuli aina edellinen ( vasen ) taulukko, otin pari muuta työkirjaa esiin samanaikaisesti ja painoin näppäimiä ja joka kerta valitsi edellisen ( vasemman ) taulukon.

    Yleensä se on niin että jos tarpeeksi monimutkaisen esimerkin ottaa, tulee eteen sekin tilanne että ei toimi, mutta eiköhän sitten ratkaista tuo ongelma kun joku törmää tuohon tulevaan ongelmaa.

    Toki jos kunde jo etukäteen tietää mikä voisi aiheuttaa ongelmia, vinkki otetaan kiitollisuudessa vastaan jo etukäteen.

    lisasitko kaavion olemassaolevaan taulukkoon vaiko lisasitko sen uuteena taulukkona, jolloin siita tulee kaavion niminen taulukko. Tota jalkimmaista ajattelin lahinna...

    Äänestä

  • Nimimerkki kirjoitti:

    Nappasin tuossa yhden 4 taulukkoisen työkirjan, laitoin jokaiseen taulukkoon yhden kaavion, painoin näppäintä ja taulukoksi tuli aina edellinen ( vasen ) taulukko, otin pari muuta työkirjaa esiin samanaikaisesti ja painoin näppäimiä ja joka kerta valitsi edellisen ( vasemman ) taulukon.

    Yleensä se on niin että jos tarpeeksi monimutkaisen esimerkin ottaa, tulee eteen sekin tilanne että ei toimi, mutta eiköhän sitten ratkaista tuo ongelma kun joku törmää tuohon tulevaan ongelmaa.

    Toki jos kunde jo etukäteen tietää mikä voisi aiheuttaa ongelmia, vinkki otetaan kiitollisuudessa vastaan jo etukäteen.

    Lisäsin kaavion vielä omalle sivulle ( ei taulukon sisään ), makro toimi hyvin, eli tämäkään ei aiheuttanut ongelmia. ( minulla on mac office 2004 )

    Järjeselin noita sivuja ja testasin, edeleen toimi hyvin.

    Itse asiassa tuo toimii niin hyvin että pidän tuon makron henkilökohtaisessa makro kirjassa. Tuonko saisi vielä toimimaan nuolinäppäimistä

    Äänestä


  • Nimimerkki kirjoitti:

    Lisäsin kaavion vielä omalle sivulle ( ei taulukon sisään ), makro toimi hyvin, eli tämäkään ei aiheuttanut ongelmia. ( minulla on mac office 2004 )

    Järjeselin noita sivuja ja testasin, edeleen toimi hyvin.

    Itse asiassa tuo toimii niin hyvin että pidän tuon makron henkilökohtaisessa makro kirjassa. Tuonko saisi vielä toimimaan nuolinäppäimistä

    ulkomuistista... VbLeft en ole varma miten se kirjoitetaan mutta ainakin {F1} on oikea muoto...

    Sub Auto_Open()
    Application.OnKey "{VbLeft}", "Vasemmalle"
    Application.OnKey "{VbRight}", "Oikealle"
    End Sub

    Sub Auto_Close()
    Application.OnKey "{VbLeft}"
    Application.OnKey "{VbRight}"
    End Sub

    Äänestä

  • kunde kirjoitti:

    ulkomuistista... VbLeft en ole varma miten se kirjoitetaan mutta ainakin {F1} on oikea muoto...

    Sub Auto_Open()
    Application.OnKey "{VbLeft}", "Vasemmalle"
    Application.OnKey "{VbRight}", "Oikealle"
    End Sub

    Sub Auto_Close()
    Application.OnKey "{VbLeft}"
    Application.OnKey "{VbRight}"
    End Sub

    Monessa tilanteessa olisi mukavempi vaihtaa sivua mnopeasti näppäimiltä, niin että ei tarvitse viedä kättä hiirelle ja sihdata oikeaan välilehteen.

    Ajattelin, jospa tuollainen olisi jo sisäänrakenettu ominaisuus, eipä löytynyt mitään näppäin yhdistelmää sille.

    Kiitos vinkistä, nyt varmasti löytyy nyt sopiva tapa vaihtaa taulukkoa.

    Äänestä

  • Nimimerkki kirjoitti:

    Monessa tilanteessa olisi mukavempi vaihtaa sivua mnopeasti näppäimiltä, niin että ei tarvitse viedä kättä hiirelle ja sihdata oikeaan välilehteen.

    Ajattelin, jospa tuollainen olisi jo sisäänrakenettu ominaisuus, eipä löytynyt mitään näppäin yhdistelmää sille.

    Kiitos vinkistä, nyt varmasti löytyy nyt sopiva tapa vaihtaa taulukkoa.

    No tällaisen sain nyt nuolilla toimiin.

    Käytän tässä nyt näppäimiä ALT ja COMMAND ja nuolia.

    Tuo yhdistelmä näkyi maalaavan reunaviivoja soluun, mutta koska en itse niitä tarvitse, yleensä jos soluja muotoilen niin joudun muutenkin käyttään hiirtä. Mutta katsokaa itse mikä on teille sopiva ja helpeistä miten se kirjoitetaan ( OnKey ).


    Henkilökohtaiseen makro kirjaan:

    Private Sub Workbook_Open()

    Application.OnKey "%*{LEFT}", "aktivoiEdellinen"
    Application.OnKey "%*{RIGHT}", "aktivoiSeuraava"
    Application.OnKey "%*{DOWN}", "aktivoiEka"

    End Sub



    Sub aktivoiEdellinen()
    If ActiveSheet.Index > 1 Then Sheets(ActiveSheet.Index - 1).Activate
    End Sub

    Sub aktivoiSeuraava()
    If ActiveSheet.Index < ActiveWorkbook.Sheets.Count Then Sheets(ActiveSheet.Index + 1).Activate
    End Sub

    Sub aktivoiEka()
    Sheets(1).Activate
    End Sub

    Äänestä

  • Ei toimi mun esimerkki oikein, jos osa taulukoista on kaaviotaulukoita. Ja jos on pelkästään kaaviotaulukoita, aiheutuu ikuinen silmukka. Olen jotenkin juuttunut tuohon Worksheet-objektiin niin, etten useinkaan muista, että muunkin tyyppisiä taulukoita on.

    Parempi versio, joka ei välitä siitä onko taulukko laskenta- vai kaaviotaulukko:

    Sub Edellinen()
    Dim I As Long
    I = ActiveSheet.Index
    Do
    I = I - 1
    If I = 0 Then I = Sheets.Count
    Loop Until Sheets(I).Visible = True
    Sheets(I).Activate
    End Sub

    Vimeistä taulukkoa en käsitellyt, kun pyydettiin ainoastaan siirtymistä vasemmalle, eli kohti ensimmäistä taulukkoa. Makro tarkastaa sen, ettei yritetä siirtyä piilotettuun taulukkoon.


    - Mika

    Äänestä

Kommentoi aloitusta


VBA:lla? kirjoitti:

Moi, pitäisi saada "yleismakro" joka valitsee aina aktiivisen laskentataulukon vasemmanpuoleisen laskentataulukon aktiiviseksi, eli ei saisi viitata mihinkään absoluuttiseen laskentataulukon nimeen. Kiitos jo etukäteen.

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