Tiettyjen välilehtien tallentaminen

bulma

Eli, tällä hetkellä minulla on makro joka tallentaa koko taulukon ja sen välilehdet (sheets) omaan tiedostoonsa. Tähän tapaan:

ActiveWorkbook.SaveAs Filename:="C:\" & Vuosi & "_" & Kuukausi & "_" & Päivä & "_" & Tiedostonimi & "_" & Tieto1 & .xls"

Mitä tuohon pitäisi lisätä että se tallentaisi vain Sheet3 ja Sheet4 tuohon uuteen tiedostoon, ja jättäsisi Sheet1 ja 2 pois?

7

671

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • oheisella

      vakiokoodeilla pääset alkuun. Muuta sitä tarvittavaksi.

      Sub TallennaSheetit()
      Dim Tämätyökirja, Uusityökirja As String
      Dim Lkm, Kpl As Integer
      Dim Vuosi, Kuukausi, Päivä, Tiedostonimi As String

      Application.ScreenUpdating = False

      Vuosi = Year(Now())
      Kuukausi = Month(Now())
      Päivä = Day(Now())
      Tiedostonimi = "Tiedot"

      Tämätyökirja = ActiveWorkbook.Name
      Workbooks.Add
      Uusityökirja = ActiveWorkbook.Name

      Lkm = 1
      For Each sh In ActiveWorkbook.Sheets
      sh.Name = Lkm
      Lkm = Lkm 1
      Next
      Kpl = Lkm

      Lkm = ActiveWorkbook.Sheets.Count

      For Each sh In Workbooks(Tämätyökirja).Sheets
      If sh.Name = "Sheet1" Or sh.Name = "Sheet2" Then GoTo Skip
      sh.Copy after:=Workbooks(Uusityökirja).Sheets(Lkm)
      Lkm = Lkm 1
      Skip:
      Next

      Application.DisplayAlerts = False
      Workbooks(Uusityökirja).Activate
      For n = 1 To Kpl - 1
      Sheets(1).Delete
      Next
      Sheets(1).Activate

      ActiveWorkbook.SaveAs Filename:="C:\" & Vuosi & "_" & Kuukausi & "_" & Päivä & "_" & Tiedostonimi & "_" & "Tieto1" & ".xls"
      ActiveWorkbook.Close
      End Sub

    • Sub Tallenna()
      Sheets(Array("Sheet2", "Sheet4")).Copy

      ActiveWorkbook.SaveAs Filename:="C:\" & Vuosi & "_" & Kuukausi & "_" & Päivä & "_" & Tiedostonimi & "_" & Tieto1 & .xls"

      ActiveWindow.Close
      End Sub

      Keep Exceling
      @Kunde

      • bulma

        Sheets(Array("Sheet8", "Sheet9")).Copy

        tuosta rivistä ei tykännyt.


      • bulma kirjoitti:

        Sheets(Array("Sheet8", "Sheet9")).Copy

        tuosta rivistä ei tykännyt.

        Onkos työkirjassasi varmasti taulukot nimeltään Sheet8 ja Sheet9? Muuta virhemahdollisuutta en keksi, ellei sitten sinulla ole joku ikivanha versio käytössäsi ja se ei tue tuota Array ominaisuutta.


      • bulma
        kunde kirjoitti:

        Onkos työkirjassasi varmasti taulukot nimeltään Sheet8 ja Sheet9? Muuta virhemahdollisuutta en keksi, ellei sitten sinulla ole joku ikivanha versio käytössäsi ja se ei tue tuota Array ominaisuutta.

        Tosiaan eihän siellä ton nimisiä taulukoita ollut *läpsii itseään*

        Osaisiko Expert excelisti vielä sanoa saisiko tuon tehtyä niin, että Sheet8 jossa on kaksi sivua tekstiä tallentuisi wordin dokumentiksi sivuiksi 1 ja 2. Sitten sheet9 n.5 sivua tallentuisi siitä sivuille 3-8?

        Todella paljon kiitoksia avuista.


      • bulma kirjoitti:

        Tosiaan eihän siellä ton nimisiä taulukoita ollut *läpsii itseään*

        Osaisiko Expert excelisti vielä sanoa saisiko tuon tehtyä niin, että Sheet8 jossa on kaksi sivua tekstiä tallentuisi wordin dokumentiksi sivuiksi 1 ja 2. Sitten sheet9 n.5 sivua tallentuisi siitä sivuille 3-8?

        Todella paljon kiitoksia avuista.

        en tiedä miten excelin ruudukon voisi poistaa näkymästä muuten kuin kikkailemalla. Toisaalta taas kopioimalla excelistä solu kerrallaan on liian hidasta...

        Sub ExcelistäWordiin()

        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        Dim ws As Worksheet

        On Error Resume Next

        Set oWord = GetObject(, "Word.Application")
        If Err Then
        Set oWord = New Word.Application
        End If

        On Error GoTo virhe
        oWord.DisplayAlerts = wdAlertsNone
        oWord.Visible = True
        oWord.Activate
        Set oDoc = oWord.Documents.Add
        For Each ws In ActiveWorkbook.Worksheets
        If ws.Name = "Sheet8" Or ws.Name = "Sheet9" Then
        ws.UsedRange.Copy
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.InsertParagraphAfter
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.PasteExcelTable _
        LinkedToExcel:=False, _
        WordFormatting:=False, _
        RTF:=True


        Application.CutCopyMode = False
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.InsertParagraphAfter

        If Not ws.Name = Worksheets(Worksheets.Count).Name Then
        With oDoc.Paragraphs(oDoc.Paragraphs.Count).Range
        .InsertParagraphBefore
        .Collapse Direction:=wdCollapseEnd
        .InsertBreak Type:=wdPageBreak
        End With
        End If
        End If
        Next ws
        oDoc.Saved = True
        oWord.DisplayAlerts = wdAlertsAll
        Set oWord = Nothing
        Set oDoc = Nothing
        Exit Sub

        virhe:
        oWord.DisplayAlerts = wdAlertsAll
        oWord.Quit
        End Sub


      • kunde kirjoitti:

        en tiedä miten excelin ruudukon voisi poistaa näkymästä muuten kuin kikkailemalla. Toisaalta taas kopioimalla excelistä solu kerrallaan on liian hidasta...

        Sub ExcelistäWordiin()

        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        Dim ws As Worksheet

        On Error Resume Next

        Set oWord = GetObject(, "Word.Application")
        If Err Then
        Set oWord = New Word.Application
        End If

        On Error GoTo virhe
        oWord.DisplayAlerts = wdAlertsNone
        oWord.Visible = True
        oWord.Activate
        Set oDoc = oWord.Documents.Add
        For Each ws In ActiveWorkbook.Worksheets
        If ws.Name = "Sheet8" Or ws.Name = "Sheet9" Then
        ws.UsedRange.Copy
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.InsertParagraphAfter
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.PasteExcelTable _
        LinkedToExcel:=False, _
        WordFormatting:=False, _
        RTF:=True


        Application.CutCopyMode = False
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.InsertParagraphAfter

        If Not ws.Name = Worksheets(Worksheets.Count).Name Then
        With oDoc.Paragraphs(oDoc.Paragraphs.Count).Range
        .InsertParagraphBefore
        .Collapse Direction:=wdCollapseEnd
        .InsertBreak Type:=wdPageBreak
        End With
        End If
        End If
        Next ws
        oDoc.Saved = True
        oWord.DisplayAlerts = wdAlertsAll
        Set oWord = Nothing
        Set oDoc = Nothing
        Exit Sub

        virhe:
        oWord.DisplayAlerts = wdAlertsAll
        oWord.Quit
        End Sub

        nyt ei näy ruudukkoa...

        Sub ExcelistäWordiin()

        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        Dim ws As Worksheet

        On Error Resume Next

        Set oWord = GetObject(, "Word.Application")
        If Err Then
        Set oWord = New Word.Application
        End If

        On Error GoTo virhe
        oWord.DisplayAlerts = wdAlertsNone
        oWord.Visible = True
        oWord.Activate
        Set oDoc = oWord.Documents.Add
        For Each ws In ActiveWorkbook.Worksheets
        If ws.Name = "Sheet8" Or ws.Name = "Sheet9" Then
        ws.UsedRange.Copy
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.InsertParagraphAfter
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.PasteExcelTable _
        LinkedToExcel:=False, _
        WordFormatting:=False, _
        RTF:=True


        Application.CutCopyMode = False
        oDoc.Paragraphs(oDoc.Paragraphs.Count).Range.InsertParagraphAfter

        If Not ws.Name = Worksheets(Worksheets.Count).Name Then
        With oDoc.Paragraphs(oDoc.Paragraphs.Count).Range
        .InsertParagraphBefore
        .Collapse Direction:=wdCollapseEnd
        .InsertBreak Type:=wdPageBreak
        End With
        End If
        End If
        Next ws
        For Each aTable In oWord.ActiveDocument.Tables
        aTable.ConvertToText wdSeparateByTabs, True
        Next aTable
        oDoc.Saved = True
        oWord.DisplayAlerts = wdAlertsAll
        Set oWord = Nothing
        Set oDoc = Nothing
        Exit Sub

        virhe:
        oWord.DisplayAlerts = wdAlertsAll
        oWord.Quit
        End Sub


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

    Luetuimmat keskustelut

    1. Kaipaatko sinä

      Yhtään meidän katseita
      Ikävä
      208
      2565
    2. Törkeä eläinsuojelurikos Sonkajärvellä

      Pohjois-Savossa Sonkajärvellä noin 40 kissaa ja reilut 10 koiraa on jouduttu lopettamaan kaltoinkohtelun vuoksi, kertoo
      Sonkajärvi
      41
      1731
    3. Jotkut ihmiset pelkäävät syöpää sairastavaa

      On hauskaa, kun kertoo jollekin, että "minulla on syöpä". Jotkut käyttäytyvät kuin se olisi tarttuva tauti. Eivät uskall
      Sinkut
      143
      1345
    4. Lavrov suivaantui Stubbille perustellusti.

      Lavrov perusteli suivaantumistaan tosiasioilla Suomen tarinasta sotiemme jälkeen, tutkija Tynkkynen ja pankkihenkilö Sol
      Maailman menoa
      314
      1206
    5. Sukupuolia on vain kaksi- kohukassista tuli kova tuomio perheenisälle oikeudessa.

      https://www.iltalehti.fi/kotimaa/a/4d4db0d9-4dda-4ba6-a699-25d725683ad6 Miten näin normaalista kassissa olevasta tekstis
      Maailman menoa
      333
      1182
    6. Kääminsä polttanut taksi suomussalmella

      Vieläkö sillä hermonsa menettäneellä hulluja ylinopeuksia ajavalla asiakkaansa haukkuvalla( jos ajat paska kyydin hänen
      Suomussalmi
      24
      1111
    7. Se ei ihan oikeasti vaatisi kuin yhden

      Tekstiviestin... Jos rakastat minua vielä toivoisin että laittaisit minulle viestiä. Rakastatko? Oletko oikeasti niin pe
      Ikävä
      57
      1083
    8. olisit voinut mies edes

      Pyytää anteeksi 🙏🫶
      Ikävä
      55
      956
    9. Eronnut Janni Hussi palaa julkisuuteen - Aloittaa uudessa työssä, joka on aivan uusi pesti Suomessa

      Janni Hussi on saanut viime aikoina kohujulkisuutta, kun hänen ja Joel Harkimon avioliitto päättyi eroon kesällä 2025. H
      Suomalaiset julkkikset
      13
      922
    10. Jorma Uotinen avaa sanaisen arkkunsa TTK-miesparista ja koko uudistuksesta: "Sehän on..."

      Tanssii Tähtien Kanssa -parketilla nähdään ensimmäistä kertaa Suomessa tanssiparina miespari kauden alusta asti. Mikko S
      Tanssii tähtien kanssa
      21
      863
    Aihe