Excel pdf:ksi makro

Poka_33

Kunde on pelastanut ennenkin pahoista pulmista jospa näin kävisi uudelleen...

Eli ongelma on seuraavanlainen:

Minulla on välilehti excelissä avoinna kutsutaan sitä vaikka "raportti"lehdeksi.

Nyt haluaisin makron joka automaattisesti menisi "tulosta" asetukseen, valitsisi sieltä tulostimeksi "Pdf-exchange 4.0" ja tallentaisi sen polkuun c:\liitteet\raportti.pdf

Tämän jälkeen palauttaisi tuon "tulosta-asetuksen" oletustulostimeksi mikä alunperin jo siinä oli.

3 h olen koettanut leikkiä mutta ei tule valmista ja pääkipu senkun kasvaa. Ongelmaksi muodostuu tuo tulostimen valinta ja palautus.

11

1381

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • jakari4900

      Olisiko tästä apua, vastaava tehty pdf-creatorilla. Tässä ei tarvitse vaihdella oletustulostinta. Tallentaa s

      Option Explicit
      Sub PrintPDF_Early()

      'Option Explicit
      'Author : Ken Puls (www.excelguru.ca)
      'Macro Purpose: Print to PDF file using PDFCreator
      ' (Download from http://sourceforge.net/projects/pdfcreator/)
      ' Designed for early bind, set reference to PDFCreator

      Dim pdfjob As PDFCreator.clsPDFCreator
      Dim sPDFName As String
      Dim sPDFPath As String
      Dim Nimi As String


      Nimi = Range("A7") & Range("H3") & Range("I3")

      '/// Change the output file name here! ///
      sPDFName = Nimi

      sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
      'vaihda ylläoleva polku sopivaksi

      'Check if worksheet is empty and exit if so
      If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

      Set pdfjob = New PDFCreator.clsPDFCreator

      With pdfjob
      If .cStart("/NoProcessingAtStartup") = False Then
      MsgBox "Can't initialize PDFCreator.", vbCritical _
      vbOKOnly, "PrtPDFCreator"
      Exit Sub
      End If
      .cOption("UseAutosave") = 1
      .cOption("UseAutosaveDirectory") = 1
      .cOption("AutosaveDirectory") = sPDFPath
      .cOption("AutosaveFilename") = sPDFName
      .cOption("AutosaveFormat") = 0 ' 0 = PDF
      .cClearCache
      End With

      'Print the document to PDF
      ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"

      'Wait until the print job has entered the print queue
      Do Until pdfjob.cCountOfPrintjobs = 1
      DoEvents
      Loop
      pdfjob.cPrinterStop = False

      'Wait until PDF creator is finished then release the objects
      Do Until pdfjob.cCountOfPrintjobs = 0
      DoEvents
      Loop
      pdfjob.cClose
      Set pdfjob = Nothing
      End Sub

      • Poka_33

        Kiitos vaan Jakari mutta pyyhkii yli ja kovaa tuo koodi että osaisin edes sitä soveltaaa =(


    • Poka_33

      Kävikin hyvin. En tarvinnut kuin omaa apuani ja opin prosessissa jopa jotain. Ei vienyt kuin 5 h ja unettoman yön miettiessä.

      Tällaisen kehitin ja toimii riittävän hyvin =)

      Sub liite()

      Dim STDprinter As String
      STDprinter = Application.ActivePrinter
      Application.ActivePrinter = "PDF-XChange 4.0 porttiin Ne00:"
      ' vaihtaa tulostimen
      ActiveSheet.PrintOut
      'printtaa välilehden
      Application.ActivePrinter = STDprinter
      ' Vaihtaa takaisin oletustulostimeksi
      End Sub

    • Poka_33

      Hmmm...Vielä olisi sen verran muokattavaa että saisin tuon pdf tallentumaan tiettyyn paikkaan; esim c:\liitetiedostot


      Anyone ?

      • jakari4900

        Mihin se nykyisin lykkää pdf:n? Jos innostusta riittää voisit kokeilla pientä muutosta, eli pari riviä lisää.


        Sub liite()

        Dim STDprinter As String

        Dim STDprinterPath As String
        'onnistuisiko tällä lisäyksellä

        STDprinter = Application.ActivePrinter
        sPDFPath = C:\liitetiedostot
        'ja tällä polulla, tosin kansio pitänee olla valmiina

        Application.ActivePrinter = "PDF-XChange 4.0 porttiin Ne00:"
        ' vaihtaa tulostimen
        ActiveSheet.PrintOut
        'printtaa välilehden
        Application.ActivePrinter = STDprinter
        ' Vaihtaa takaisin oletustulostimeksi
        End Sub


    • Poka_33

      Ei toimi...Alkaa herjaamaan tuota
      sPDFPath = C:\liitetiedostot

      hmmmm....

    • Poka_33

      En saa toimimaan..Joko Kunde on palannut lomalta neuvomaan kuolevaisia ?

      • himassahan sitä ollaan taas!

        tää koodin pätkä pitäisi toimia, eli vaihtaa oletustulostimen PDF-XChangeksi ja tulostaa tiedoston ja sitten palauttaa oletustulostimen takaisin

        Ei ole koneella tota PDF-XChange tulostinohjelmaa, mutta eiköhän sen omimaisuuksista voi suoraan määritellä tarvittavat polut ja oletusnimet....

        eli menusta FILE/PRINT ja avautuvasta valikosta valitset ton PDF-XChange tulostimen ja klikkaa vieressä olevaa PROPERTIES nappia ja sitten vaan kattelet, jospa jossain olisi tallennusasetukset ja rukkaat ne kohilleen...
        polku= C:\liitteet
        nimi=raportti

        moduuliin...

        Dim Oletustulostin As String
        Oletustulostin = Application.ActivePrinter
        Application.ActivePrinter = "PDF-XChange 4.0 on Ne05:"
        ActiveSheet.PrintOut
        Application.ActivePrinter = Oletustulostin
        End Sub


        Keep EXCELing
        @Kunde


    • Poka_33

      Ei toimi haluamallani tavalla noilla neuvoilla. Kyseessä on tiedosto jossa on monta välilehteä jotka jokainen sisältää tuon "liitetiedosto" napin. Nyt jos yhdessä teen nuo mainitsemasi asetukset, se sama kertaantuu jokaisessa välilehdessä, esim nimi: Raportti . jonku välilehden nimi voi olla esim "työtunnit".

      Olisiko tuota koodia mahdollista tehdä niin että se hakisi liitetiedoston nimen joltain solulta esim A1 ja nimeäisi raportin aina sen mukaan?

      Jostain syystä tuo tallennuspaikka vaikka sen asettaa "ominaisuudet" paikasta johonkin polkuun viittamaan ei toimi =(

    • niinpä...
      et kertonut aluksi, että haluat tulostaa useampia välilehtiä eri nimillä ja hakoteillä olin taas...
      Ei taida onnistua tuo, koska printteri näköjään kuitenkin käyttää tallenna lomaketta tulostaessaan taulukkoa ja kokeilin syöttää siihen sitten tietoja eri tavoilla (osaan kyllä ton) ja virhettä pukkaa aina ja ohjeita ei loe mikä mattää :-(
      Netistä löysin ilmaisen toimivan version sun tapaukseen( ei tartte paljoa fiksata Print Multiple Worksheets to Multiple PDF Files koodia) ja tuntui toimivan ihan jees...

      koodi
      http://www.excelguru.ca/node/21#MultiMulti

      printteri
      http://sourceforge.net/projects/pdfcreator/

      Keep EXCELing
      @Kunde

    • Poka_33

      Ei oikein onnistu kun näihin "firman" koneisiin ei pysty lataamaan mitään ohjelmia =(

      Noh täytynee tyytyä tuohon alkuoperäiseen koodiin. Kiitos kuitenkin !

    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
      146
      2912
    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
      367
      2047
    3. Leipivaaran päällä on kuoleman hiljaista.

      Suru vai suuri helpotus...
      Puolanka
      40
      1777
    4. Kuka rääkkää eläimiä Puolangalla?

      Poliisi ampui toistakymmentä nälkiintynyttä eläintä Puolangalla Tilalta oli ollut karkuteillä lähes viisikymmentä nälkii
      Puolanka
      37
      1742
    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
      1421
    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
      1221
    7. Määpä tiijän että rakastat

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

      Vedakirjoituksia pidetään historiallisina teksteinä, ei siis "julistuksena" kuten esimerkiksi Raamattua, vaan kuten koul
      Hindulaisuus
      328
      965
    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ä
      110
      948
    10. Annan meille mahdollisuuden

      Olen avoimin mielin ja katson miten asiat etenevät. Mutta tällä kertaa sun on tehtävä eka siirto.Sen jälkeen olen täysil
      Ikävä
      53
      782
    Aihe