Excel pdf:ksi makro

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

Muut lukivat myös

Vastaukset 11

Vanhimmat

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

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

    Äänestä

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

Äänestä

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


Anyone ?

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

    Äänestä

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

hmmmm....

Äänestä

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

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

    Äänestä

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 =(

Äänestä

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

Äänestä

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

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

Äänestä

Kommentoi aloitusta


Poka_33 kirjoitti:

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.

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