Avatar billede mllarsen Nybegynder
07. januar 2012 - 19:57 Der er 11 kommentarer

Print makro i excel som udskriver til Pdf (uden at bekræfte dokumentnavn og folder, altså autonavn på pdf printet).

Hej
Er det muligt at lave en makro i excel som udskriver til pdf printer, og at pdfdokumentnavn autodannes til en bestemt folder?
(Printer kunne også være et microsoft image writer).
Avatar billede Thorp Praktikant
09. januar 2012 - 17:11 #1
Kan du bruge denne:

        ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            WB_Filename, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

WB_Filename er sti til placering + navn på dokument eks.:

WB_Filename = "C:\Documents and Settings\My Documents\WBReport_" & Today()& ".pdf"
Avatar billede mllarsen Nybegynder
12. januar 2012 - 08:31 #2
Hej
1. problem)
Den stopper ved "Today" og skriver "Sub or funktion not defined"
(køre office 2003)
Avatar billede Thorp Praktikant
12. januar 2012 - 09:42 #3
OK - Today bruges egentlig kun som en unik identifier, så den kan udelade helt. ellers prøv med now() istedet.
Avatar billede Thorp Praktikant
12. januar 2012 - 10:27 #4
WB_FileName skal selvfølgelig står først :-)

Denne burde virke:

Sub Printtest()

'WB_Filename er sti til placering + navn på dokument eks.:

    wb_filename = "C:\Documents and Settings\My Documents\WBReport_" & Weekday(Now(), vbMonday) & "_" & WorksheetFunction.WeekNum(Now(), 1) & ".pdf"

  ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            wb_filename, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True


End Sub


Weekday og Weeknum anvender jeg her til at danne det unikke filnavn
Avatar billede mllarsen Nybegynder
12. januar 2012 - 11:17 #5
Hej
Så siger den
"Objekt does´t support property or method"

"ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            WB_Filename, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True"
Hilsen Mll
Avatar billede Thorp Praktikant
12. januar 2012 - 12:08 #6
Så virker den nok ikke på 2003. Hvis du har installeret en PDF printer kunne du evt. forsøge dette:

ActiveWorkbook.PrintOut ActivePrinter:="PDFPrinter"

hvor PDFPrinter er navnet på den installerede PDF printer eks. "PDFCreator"

Med PDF Creator gemmes dokumentet så manuelt via en dialogboks.
Avatar billede mllarsen Nybegynder
12. januar 2012 - 12:37 #7
Hej

Jeg går ud fra at jeg kan kopier direkte in i en makro. Det ser sådan ud. Men den stopper allerede på navngivning af filen, hvis jeg bytter rundt.

Skal jeg evt. fjerne noget?
Hilsen Mll


Sub Makro26()
'
' Makro26 Makro
' Makro indspillet 2012-01-12
'
'
    wb_filename = "h:\PDFer\WBReport_" & Weekday(Now(), vbMonday) & "_" & WorksheetFunction.WeekNum(Now(), 1) & ".pdf"
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    wb_filename, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    True
    Range("I19").Select
End Sub
Avatar billede Thorp Praktikant
12. januar 2012 - 13:13 #8
Prøv at fjerne "& Weekday(Now(), vbMonday) & "_" & WorksheetFunction.WeekNum(Now(), 1)" så burde den gemme under navnet WBReport_.pdf
Avatar billede mllarsen Nybegynder
12. januar 2012 - 13:58 #9
Dutter ikke. Så stopper den stadig ved førstnævnte problem.
Hilsen M
Avatar billede Thorp Praktikant
12. januar 2012 - 20:24 #10
Hvis du installere PDFCreator (er gratis) og aktivere PDFCreator objektet (Under Tools - Referencer), så virker denne.

Sub PrintTest()

Dim PDFJob As PDFCreator.clsPDFCreator
Dim PDFPath As String
Dim PDFName As String

Set PDFJob = New PDFCreator.clsPDFCreator

PDFPath = "H:\Documents\"
PDFName = "WBReport_1.pdf"

With PDFJob

    .cOption("UseAutosave") = 1
    .cOption("UseAutosaveDirectory") = 1
    .cOption("AutosaveDirectory") = PDFPath
    .cOption("AutosaveFilename") = PDFName
    .cOption("AutosaveFormat") = 0
    .cClearCache

End With


ActiveWorkbook.PrintOut ActivePrinter:="PDFCreator"
Avatar billede mllarsen Nybegynder
11. april 2012 - 09:22 #11
Hej
Eftersom det er det eneste svar jeg får, så lukker jeg. Er dog ikke helt optimal løsning.
Mvh marianne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester