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.)
Saman Makron ajaminen valituilla "sheets"
6
329
Vastaukset
- 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 SubTunnen 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
Vuonna 2026 jää entistä vähemmän rahaa käteen palkansaajille
Työttömyysvakuutusmaksu nousee 0,3 prosenttia. Työeläkemaksu nousee 7,15 prosentista 7,3 prosenttiin. Työmarkkinajärjest595617Yritystuet pois ja työeläkevaroilla maksettava valtion velka pois
Nyt on teille kerrottu keino kuinka Suomen velkaongelmasta päästää eroon kertalaakista. Älkää saatanat enää minulle tul944935Suomen kansa puhunut: Purra huonoimpia ministereitä
Kouluarvosanalla 6–, eli samaa tasoa mitä Purran oikeakin koulutodistus. Epäpätevyys on tullut huomattua Suomen talouden3433954Ylen juttu sisäministeristä oli selvän tarkoitushakuinen
haluttiin vielä vuoden loppuun saada joku "kohu". (Olisiko Yle tehnyt jutun jos sisäministerinä olisi esim. RKP:n, jota1403262Suomalaista yrittäjää ei kommunistista erota
Muualla maailmassa yrittäjät elävät asiakkaiden rahoilla, Suomessa palkansaajien maksamilla veroilla. Palkansaajahan ma472739- 252088
Joulun ruokajonoissa entistä enemmän avuntarvitsijoita - Mitä ajatuksia tämä herättää?
Räppärit Mikael Gabriel, VilleGalle ja Jare Brand jakoivat ruokaa ja pehmeitäkin paketteja vähävaraisille jouluaattoa ed1142031Ulkoministeriön konsulipäällikkö arvostelee rajusti Haavistoa: "Täällä on pelon ilmapiiri"
"– Täällä on ministerin toimien takia aivan selvästi pelon ilmapiiri. Jos sellaisen annetaan pesiytyä virkamieskulttuuri101907- 2481862
Pyydän anteeksi etten osannut ratkaista
Mitään muuta kuin lähtemällä. Et oikein tullut vastaan etkä kuunnellut. Tuntui että minun piti koittaa sopia ja sovitell801829