Saman Makron ajaminen valituilla "sheets"

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.)
6371
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

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

Äänestä
  • 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.

    Äänestä

  • "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 ' 

    Äänestä

  • 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

    Äänestä

  • ... 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!

    Äänestä

  • 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

    Äänestä

Kommentoi aloitusta


Makro-Marko kirjoitti:

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.)

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