Taulukon kopiointi ilman makroa

TapaniK

Miten pystyn kopioimaan työkirjassa olevan taulukon uuteen työkirjaan siten että makrot jäisivät pois?

Minulla on noin kuusisataa tiedostoa joissa jokaisessa on kaksi tai kolme taulukkoa. Jokaisen työkirjan ThisWorkbook-osassa on makro ja jokaisen työkirjan taulukossa on lisäksi makro. Nyt minun pitäisi saada muutettua ThisWorkbook-osan makro toisenlaiseksi ja saada taulukoissa olevat makrot kokonaan pois.

ThisWorkbook-osan makro ei ole ongelma, ratkaisin asian niin että tein uuden "työkirjapohjan" jonka ThisWorkbook-osassa on uusi makro. Lisäksi tein työkirjan jonka koodi avaa "työkirjapohjan" sekä muokattavan tiedoston. Tämän jälkeen muokattavan tiedoston taulukot kopioidaan "työkirjapohjaan" joka lopuksi tallennetaan samalla nimellä kuin muokattava työkirja mutta vain eri kansioon. Tällä tavalla onnistun siis muuttamaan ThisWorkbook-osan makron mutta taulukoissa olevat makrot menevät tähän uuteenkin työkirjaan ja ne siis pitäisi saada jäämään pois. Onko tähän olemassa keinoa?

Taulukon kopoimiseksi uuteen työkirjaan käytin taulukonvalitsimen takaa hiiren kakkospainikkeella löytyvää "Siirrä tai kopioi..." -toimintoa.

11

1135

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Nimimerkki

      Tuo sinun tapasi kopioi noi makrot mukaan, normaali kopiointi ei sitä tehe.

      kelpaisiko tämä, aika homma kuitenkin, ( kunde tekisi tuohonkin varmaan koodin)

      Valitse kaikki taulukot ( joku näppäin hiirellä klik)
      ctrl a (valitsee kaikki solut ) tai Klikkaa vasenta yläkulmaa
      Ctrl c
      valitse uusi tyäkirjan ekan taulukon eka sarake
      Ctrl v

      • Nimimerkki

        Varmuuden vuoksi, pidä huolta että pohjassa on tarpeeksi tyhjiä taulukoita.

        Minulla ei ainakaan varoittanut mitään vaikka kopsasin 3 taulukkoa ja kohteena oli vain yksi taulukko, eli kopsasi vain yhden taulukon (ensimmäisen) kolmen sijasta


      • TapaniK

        Olipa yksinkertaista! Yritin alun perin kopioida taulukon valitsemalla sen tarpeelliset solut ja liittämällä ne uuteen taulukkoon, mutta mm. sarakeleveydet eivät muuttuneet sellaisiksi kuin niitten piti. Ei vaikka kokeilin "Liitä Määräten..." ja sieltä kaikki. Vasta kun valitsin Liitä määräten -> sarakeleveydet niin silloin sarakeleveydet muuttuivat mutta muu sisältö luonnollisesti jäi pois. Mutta tuolla tavalla koko taulukon valitsemalla näköjään toimii.

        Kiitos paljon ratkaisusta, taidan kuitenkin tehdä Kunden ohjeen mukaan, VBA on niin kiehtovaa ;)


    • aika pitkällehän oletkin päässyt :-)
      taulukon moduuleitahan ei voi poistaa, joten on poistettava sisältö...

      ennen tallennusta aja seuraava makro
      vaatii referenssin Visual Basic Extensibility ja makrojen suojauksessa täpän kohtaan luota Visual Basic projekteihin luotettavat lähteet välilehdellä.

      Sub PoistaKoodit(Työkirja As Workbook, ModuulinNimi As String)
      On Error Resume Next
      With Työkirja.VBProject.VBComponents(ModuulinNimi).CodeModule
      .DeleteLines 1, .CountOfLines
      End With
      On Error GoTo 0
      End Sub

      Sub Testi()
      PoistaKoodit ActiveWorkbook, "Taul1"
      'suorita tarvittaessa muillekin taulukoille
      'PoistaKoodit ActiveWorkbook, "Taul2"
      'PoistaKoodit ActiveWorkbook, "Taul3"
      End Sub

      • TapaniK

        Joo, olin kyllä tyytyväinen kun onnistuin työkirjan koodin muuttamaan, vaikkakin sen voisi kai kelpomminkin hoitaa. Jonkin verran olen VBA:han nyt tutustunut ja semmoisessa vaiheessa menossa että koko ajan oppii jotain uutta. Kokeilemallahan tuota koodia pitää vääntää mutta onpa hauska peli tuo Excel!

        Tuota kertomaasi makroa ajattelin kokeilla, mutta mitä tarkoittaa "referenssi Visual Basic Extensibility", ja mistä löytyy tuo "luotettavat lähteet" -välilehti?

        En vielä makroa kokeillut mutta tuota Testi-proseduuria vähän muokkasin koska taulukoiden nimet eivät ole samoja eri työkirjoissa. En vielä kokeillut tuotakaan mutta jos makro ei toimi niin kokeilemalla, kokeilemalla:

        Sub Testi()
        Dim Lomake As Worksheet
        For Each Lomake In ActiveWorkbook.Sheets
        Lomake.Activate
        PoistaKoodit ActiveWorkbook.ActiveSheet
        Next
        End Sub

        Toinen samaan asiaan liittyvä juttu mitä yritin ratkaista mutta en onnistunut, niin yritin saada kaikkien jossakin tietyssä kansiossa olevien tiedostojen nimet Excelin työkirjaan. Yritin sellaista For Each -tyyppistä juttua missä jokainen kansiossa oleva tiedostonimi kirjoitetaan vuorollaan taulukkoon allekkain, mutta en keksinyt miten kansiossa oleviin tiedostoihin voisi viitata samoin kuin tuossa yllä viittaan työkirjan taulukoihin. Onnistuukohan tuollainen? Jos ei, niin kirjoitan tiedostonimet käsin työkirjaan, se täytyy tehdä vain kerran ja on jo helppo juttu...


      • tarkkana
        TapaniK kirjoitti:

        Joo, olin kyllä tyytyväinen kun onnistuin työkirjan koodin muuttamaan, vaikkakin sen voisi kai kelpomminkin hoitaa. Jonkin verran olen VBA:han nyt tutustunut ja semmoisessa vaiheessa menossa että koko ajan oppii jotain uutta. Kokeilemallahan tuota koodia pitää vääntää mutta onpa hauska peli tuo Excel!

        Tuota kertomaasi makroa ajattelin kokeilla, mutta mitä tarkoittaa "referenssi Visual Basic Extensibility", ja mistä löytyy tuo "luotettavat lähteet" -välilehti?

        En vielä makroa kokeillut mutta tuota Testi-proseduuria vähän muokkasin koska taulukoiden nimet eivät ole samoja eri työkirjoissa. En vielä kokeillut tuotakaan mutta jos makro ei toimi niin kokeilemalla, kokeilemalla:

        Sub Testi()
        Dim Lomake As Worksheet
        For Each Lomake In ActiveWorkbook.Sheets
        Lomake.Activate
        PoistaKoodit ActiveWorkbook.ActiveSheet
        Next
        End Sub

        Toinen samaan asiaan liittyvä juttu mitä yritin ratkaista mutta en onnistunut, niin yritin saada kaikkien jossakin tietyssä kansiossa olevien tiedostojen nimet Excelin työkirjaan. Yritin sellaista For Each -tyyppistä juttua missä jokainen kansiossa oleva tiedostonimi kirjoitetaan vuorollaan taulukkoon allekkain, mutta en keksinyt miten kansiossa oleviin tiedostoihin voisi viitata samoin kuin tuossa yllä viittaan työkirjan taulukoihin. Onnistuukohan tuollainen? Jos ei, niin kirjoitan tiedostonimet käsin työkirjaan, se täytyy tehdä vain kerran ja on jo helppo juttu...

        Jos muutama sana svenskiä ei haittaa niin tiedostolistojen tekoon löytyy mitä mainioin koodi osoitteesta:
        http://www.kentexcel.com/VB-tips.htm
        Otsikolla: Skapa en lista över filer och filinformation i en viss mapp med undermappar.


      • TapaniK
        tarkkana kirjoitti:

        Jos muutama sana svenskiä ei haittaa niin tiedostolistojen tekoon löytyy mitä mainioin koodi osoitteesta:
        http://www.kentexcel.com/VB-tips.htm
        Otsikolla: Skapa en lista över filer och filinformation i en viss mapp med undermappar.

        Yritin tuota ruotsalaista koodia mutta Excelini ei siitä pitänyt vaan töksähti muuttujaa määrittäessä kohtaan Dim FSO As Scripting.FileSystemObject. on mukamas käännösvirhe ja käyttäjän määrittämää tyyppiä ei ole määritetty.

        Ohje kertoi että omia tietotyyppejä voi luoda mutta ne on ensin määritettävä Type...End Type -lauseella jne. Meni hiukkasen yli, mutta kiitos kuitenkin vinkistä :)


      • TapaniK

        Kokeilin koodiasi, ja sehän toimi! En löytänyt tuota "Visual Basic Extensibilityä" enkä "luota Visual Basic projekteihin" -täppää, mutta siitä huolimatta koodi toimi. Ainoastaan kun suoritan koodia rivi kerrallaan niin tulee ilmoitus "Ei voi siirtyä keskeytystilaan". Tästä huolimatta taulukon koodi lähtee pois niin kuin pitääkin. Kun käynnistän koodin Suorita-painikkeesta niin ilmoitusta ei tule.

        -Nuo asiat kyllä taisit jo tietääkin, kiitos paljon avusta!


      • tarkkana
        TapaniK kirjoitti:

        Yritin tuota ruotsalaista koodia mutta Excelini ei siitä pitänyt vaan töksähti muuttujaa määrittäessä kohtaan Dim FSO As Scripting.FileSystemObject. on mukamas käännösvirhe ja käyttäjän määrittämää tyyppiä ei ole määritetty.

        Ohje kertoi että omia tietotyyppejä voi luoda mutta ne on ensin määritettävä Type...End Type -lauseella jne. Meni hiukkasen yli, mutta kiitos kuitenkin vinkistä :)

        kunde oli heittänyt samantyylisen koodin suomeksi aiheen "Tiedostojen lisääminen?" alle. Tuo ainakin toimi - toimi kyllä svenskimalli minulla myös


      • TapaniK
        tarkkana kirjoitti:

        kunde oli heittänyt samantyylisen koodin suomeksi aiheen "Tiedostojen lisääminen?" alle. Tuo ainakin toimi - toimi kyllä svenskimalli minulla myös

        Huomasin Kunden vastauksen tuohon toiseen kysymykseen ja sieltä keksin että piti lisätä se scripting-systeemiruksi. Sen lisäämisen jälkeen kumpikin koodi toimii moitteettomasti :)


      • TapaniK

        Kuten jo kerroin, koodi toimi kun testasin sitä, mutta "aidossa ympäristössä" en saanutkaan sitä toimimaan. Syykin jo löytyi osoitteesta http://www.cpearson.com/excel/vbe.htm

        Kaikkien työkirjojen koodi on suojattu ja kuten em. sivulla on mainittu: "There is no programmatic way to unlock a locked project." Eli minun täytyy kiertää ongelma jollakin muulla tavalla. Paljon kiitoksia kuitenkin mainiosta koodista!


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

    Luetuimmat keskustelut

    1. Olet toisen kanssa

      ...ja minä yhä vain sinua kaipaan. Tiedän ettet ole onnellinen siellä. Älä hukkaa aitoa onnea ja rakkautta hukkaan vain
      Ikävä
      288
      2472
    2. Näytit taas lihoneen.

      Tynnyri se vaan kasvaa.
      Ikävä
      46
      2153
    3. Immu otti pataan

      Olen pettynyt, hänen piti viedä Stagalaa kuin litran mittaa - mutta kuinka kävikään? Voi hemmetti sentään.... Ääääääh!
      Kotimaiset julkkisjuorut
      125
      2109
    4. Kuka teistä on paras nainen

      A-nainen? J-nainen? K-nainen? M-nainen? S-nainen? Vai kenties joku muu...? 😊
      Ikävä
      74
      1715
    5. Osaako joku selittää tätä

      Että miksi mulle on joka toinen ventovieras ihminen tyly ainakin ilmeillään ja eleillään?
      Ikävä
      88
      1479
    6. Jos me joskus nähtäisiin

      niin ei kai sen vielä tarvitsisi merkitä sen enempää? Ja voihan olla ettei kumpikaan enää siinä vaiheessa edes haluaisi
      Ikävä
      111
      1393
    7. Onko jotain mistä

      Olet huolissasi kaivattusi suhteen?
      Ikävä
      78
      1324
    8. Persun suusta:"Köyhät on luusereita ja ansaitsevat köyhyyden"

      Ministeri Juuston apulainen näin uhoaa. Mitäs siinä. Kyllä on jo tiedetty muutaman vuoden hallitustyön pohjalta että per
      Lieksa
      231
      1287
    9. Koska vietät

      Yhteisen yön kaivattusi kanssa?
      Ikävä
      57
      1195
    10. Näetkö feminismin uhkana

      Vai mahdollisuutena kun deittailet naisia? Mitä miehet mieltä feminismistä?
      Ikävä
      185
      1073
    Aihe