Saman Makron ajaminen valituilla "sheets"

Makro-Marko

Miten yhden ja saman makron saa ajamaan "vain" valitut sheetit työkirjassa.

Makro ajaetaan esimerkiksi
Sheet1, Sheet3, Sheet5

Sub Laske()
Range("CJ1").Formula = "=IF(ISERROR(SUM(CD1/CC1)*(X1)),""0"",SUM(CD1/CC1)*(X1))"
Range("CK1").Formula = "=IF(ISERROR(SUM(CD1 CE1)/(CC1)*(X1)),""0"",SUM(CD1 CE1)/(CC1)*(X1))"
Range("CL1").Formula = "=IF(ISERROR(SUM(CD1 CE1 CF1)/(CC1)*(X1)),""0"",SUM(CD1 CE1 CF1)/(CC1)*(X1))"
Range("CM1").Formula = "=IF(ISERROR(SUM(CH1/CC1)*(X1)),""0"",SUM(CH1/CC1)*(X1))"
Range("CJ1:CM1").AutoFill Destination:=Range("CJ1:CM16"), Type:=xlFillDefault
End Sub


( En hae Call Macro kun niitä on nyt niin paljon kun innostuin liikaa että homma karkaa käsistä, oikeesti.)

6

304

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • okraM-okraM

      Oheisella makrolla voit suorittaa halutun sub:n valituissa työkirjoissa. Eli sun pitää ensin cotrolli pohjassa valita alapalkista työkirjat missä haluut tuon Laske() makron ajaa.

      Sub Testi()
      Dim taulukot As Worksheet
      For Each taulukko In ActiveWindow.SelectedSheets
      taulukko.Select
      Call Laske
      Next
      End Sub

      • okraM-okraM

        oho tuohon jäi tuo muuttujan määrittely vahingossa, edellä oleva sub pelaa koska siinä muuttujan määrittelyssä on kirjoitusvirhe, mutta se on turha ja sen rivin voi poistaa.


      • Makro-Marko

        "Eli sun pitää ensin cotrolli pohjassa valita alapalkista työkirjat missä haluut tuon Laske() makron ajaa."
        Olen kyl niin aloittelija etten ymmärrätänyt mitä pitää ja mistä pitää tehdä? Mä vaan heitän moduliin koodeja muusta en tiedä.

        Mut hei, eikös allaoleva sivua kait aika paljon tuota sinun koodausta. Tuohan kanssa kutsuu Sub Laske makron. Saiskohan valaistusta miten annetaan käsky että se ajaa vain kyseiset "sheet1", "Sheet2", "Sheet3" taulukot.
        Nyt tuo makro kieltää ajamasta nuo taulukot ja ajaa kaikki muut taulukot aktiivisessa työkirjassa.


        Olen yrittänyt modaa mutta taidot ei riitä, se huutaa aina vaan virhettä. Kun ei osaa niin ei osaa!




        Sub RunRun()
        Dim wS As Worksheet
        For Each wS In ActiveWorkbook.Worksheets
        If wS.Name = "Sheet1" Or _
        wS.Name = "Sheet2" Or _
        wS.Name = "Sheet3" Then
        ''''do nothing
        Else
        wS.Select
        Laske ' 


      • ...
        Makro-Marko kirjoitti:

        "Eli sun pitää ensin cotrolli pohjassa valita alapalkista työkirjat missä haluut tuon Laske() makron ajaa."
        Olen kyl niin aloittelija etten ymmärrätänyt mitä pitää ja mistä pitää tehdä? Mä vaan heitän moduliin koodeja muusta en tiedä.

        Mut hei, eikös allaoleva sivua kait aika paljon tuota sinun koodausta. Tuohan kanssa kutsuu Sub Laske makron. Saiskohan valaistusta miten annetaan käsky että se ajaa vain kyseiset "sheet1", "Sheet2", "Sheet3" taulukot.
        Nyt tuo makro kieltää ajamasta nuo taulukot ja ajaa kaikki muut taulukot aktiivisessa työkirjassa.


        Olen yrittänyt modaa mutta taidot ei riitä, se huutaa aina vaan virhettä. Kun ei osaa niin ei osaa!




        Sub RunRun()
        Dim wS As Worksheet
        For Each wS In ActiveWorkbook.Worksheets
        If wS.Name = "Sheet1" Or _
        wS.Name = "Sheet2" Or _
        wS.Name = "Sheet3" Then
        ''''do nothing
        Else
        wS.Select
        Laske ' 

        Sub RunRun()
        Dim wS As Worksheet
        For Each wS In ActiveWorkbook.Worksheets
        If wS.Name = "Sheet1" Or _
        wS.Name = "Sheet2" Or _
        wS.Name = "Sheet3" Then
        wS.Select
        Laske '  <  <  <  < sub Laske
        End If
        Next
        End Sub


      • Makro-Marko
        ... kirjoitti:

        Sub RunRun()
        Dim wS As Worksheet
        For Each wS In ActiveWorkbook.Worksheets
        If wS.Name = "Sheet1" Or _
        wS.Name = "Sheet2" Or _
        wS.Name = "Sheet3" Then
        wS.Select
        Laske '  <  <  <  < sub Laske
        End If
        Next
        End Sub

        Tunnen itseni tosi tyhmäksi, siitä otettiin välistä pois ainoastaan Else, oppi kuitenkin jotain uutta mikä on hyvä juttu.
        Toi ''''do nothing ei ole aktiivinen kun siinä on ne heittismerkkit edessä. Mutta kiitos!


      • Makro-Marko kirjoitti:

        Tunnen itseni tosi tyhmäksi, siitä otettiin välistä pois ainoastaan Else, oppi kuitenkin jotain uutta mikä on hyvä juttu.
        Toi ''''do nothing ei ole aktiivinen kun siinä on ne heittismerkkit edessä. Mutta kiitos!

        turhat luupit ja jossittelut pois...
        Sub RunRun
        Dim Taulukko as WorkSheet
        For Each Taulukko In Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
        Taulukko.Activate
        Laske
        Next
        End Sub


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Useita puukotettu Tampereella

      Mikäs homma tämä nyt taas on? "Useaa henkilöä on puukotettu Tampereen keskustassa kauppakeskus Ratinan lähistöllä." ht
      Tampere
      172
      3375
    2. Asiakas iski kaupassa varastelua tehneen kanveesiin.

      https://www.iltalehti.fi/kotimaa/a/33a85463-e4d5-45ed-8014-db51fe8079ec Oikein. Näin sitä pitää. Kyllä kaupoissa valtava
      Maailman menoa
      373
      2161
    3. Kuka rääkkää eläimiä Puolangalla?

      Poliisi ampui toistakymmentä nälkiintynyttä eläintä Puolangalla Tilalta oli ollut karkuteillä lähes viisikymmentä nälkii
      Puolanka
      54
      2097
    4. Leipivaaran päällä on kuoleman hiljaista.

      Suru vai suuri helpotus...
      Puolanka
      42
      1988
    5. Meneeköhän sulla

      oikeasti pinnan alla yhtä huonosti kuin mulla? Tai yhtä huonosti mutta jollain eri tyylillä? Ei olisi pitänyt jättää sua
      Ikävä
      32
      1481
    6. Jos ei tiedä mitä toisesta haluaa

      Älä missään nimessä anna mitään merkkejä kiinnostuksesta. Ole haluamatta mitään. Täytyy ajatella toistakin. Ei kukaan em
      Ikävä
      93
      1241
    7. Määpä tiijän että rakastat

      Minua nimittäin. Samoin hei! Olet mun vastakappaleeni.
      Ikävä
      54
      1203
    8. Muutama kysymys ja huomio hindulaisesta kulttuurista.

      Vedakirjoituksia pidetään historiallisina teksteinä, ei siis "julistuksena" kuten esimerkiksi Raamattua, vaan kuten koul
      Hindulaisuus
      394
      1091
    9. Jumala puhui minulle

      Hän kertoi sinusta asioita, joiden takia jaksan, uskon ja luotan. Hän kuvaili sinua minulle ja pakahduin onnesta kuulles
      Ikävä
      115
      1015
    10. Koska näit kaivattusi viimeksi

      Milloin tapasit rakkaasi? Ja etenikö suhde yhtään?
      Ikävä
      46
      889
    Aihe