Avatar billede petert Forsker
20. oktober 2007 - 14:28 Der er 19 kommentarer og
1 løsning

Gem det aktive ark som PDF med macro

Er der nogle der ved hvordan man laver følgende macro kode.
Gemmer det ark jeg står i (aktive ark)som PDF i følgende sti
C:\DATA\xxx\yyy og med følgende navn "indholdet fra celle D14+Ansøgning" (D14=en dato)
MVH
Petert
Avatar billede petert Forsker
20. oktober 2007 - 14:51 #1
Jeg kører EXCEL 2003 pro og har BL.a Adobe Acrobat 6.0 Pro
/petert
Avatar billede panebb Novice
20. oktober 2007 - 19:47 #2
Denne kan udskrive PDF. Kræver at du ha en PDF printer.
Jeg bruger CutePDF .com men der er også mange andre gode.

Sub makro3()
ChDir "C:\data1\xxx\yyy"
fName = Sheets("Ark1").Range("d14").Value
ActiveWorkbook.SaveAs fName & "ansøgning.xls"
    Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ExecuteExcel4Macro _
        "PRINT(1,,,1,,,,,,,,2,""CutePDF Writer på CPW2:"",,TRUE,,FALSE)"

End Sub
Avatar billede petert Forsker
20. oktober 2007 - 23:20 #3
Hvis filen ikke skal udskrives men kun gemmes som PDF hvad skal så ændres??
/petert
Avatar billede panebb Novice
21. oktober 2007 - 09:14 #4
intet.
Når du udkriver til f.eks. Cute PDF gemmes en PDF-fil. Der skrives ikke ud på printeren.
Avatar billede petert Forsker
21. oktober 2007 - 10:43 #5
Kan man også bruge Adobe acrobat 6.0 pro og hvis ja hvordan ændre man koden.
Alternetiv er cuteFDP Writer free vare der kan downloades.(Jeg har cuteFTP profesionel men det kan ikke bruges vel??
Det jeg skal gemme er ark 2 i en projekt mappe (som består af 2 ark ark 1 er et skema som ikke skal gemmes i PDF)
Filnavnet er og så fra ark 2 som jeg formoder bare skal ændres således
"fName = Sheets("Ark2").Range("d14").Value"
/petert
Avatar billede petert Forsker
21. oktober 2007 - 11:17 #6
Jeg har fundet CutePDF Writer og instaleret men jeg får en fejl meddelse når jeg kører makroen "run-time errow 1004" min kode ser sådan ud
Sub makro3()
ChDir "C:\data\Peter\EXCEL"
fName = Sheets("Ark2").Range("d14").Value
ActiveWorkbook.SaveAs fName & "ansøgning.xls"
    Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ExecuteExcel4Macro _
        "PRINT(1,,,1,,,,,,,,2,""CutePDF Writer på CPW2:"",,TRUE,,FALSE)"

    ActiveWorkbook.Save
    Application.Run "'kørselsregnskab rugby test.xls'!makro3"
    Application.Goto Reference:="makro3"
End Sub
hvad gør jeg galt??
den fil der gemmes er både ark 1 og 2 og skal kun være ark 2
Og den gemmes som navn.xls og ikke som navn.pdf
/petert
Avatar billede panebb Novice
21. oktober 2007 - 13:27 #7
Hvor der står "CutePDF writer på CPW2" -> skal du indsætte navnet på din PDF-printer.
Ved du ikke hvad den skal hedde, så start "indspil makro" og skriv ud (gem PDF) så har du navnet.


Sub makro3()
ChDir "C:\data\Peter\EXCEL"
fName = Sheets("Ark2").Range("d14").Value
ActiveWorkbook.SaveAs fName & "ansøgning.xls"
    Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ExecuteExcel4Macro _
        "PRINT(1,,,1,,,,,,,,2,""CutePDF Writer på CPW2:"",,TRUE,,FALSE)"

   
End Sub
Avatar billede panebb Novice
21. oktober 2007 - 13:32 #8
Dit ark gemnmes først med indholdet af ark2+ansøgning som xls fil. Derefter udskrives/gemmes som PDF.

Sub makro3()
ChDir "C:\data\Peter\EXCEL"
fName = Sheets("Ark2").Range("d14").Value
ActiveWorkbook.SaveAs fName & "ansøgning.xls"
    Sheets("Ark2").Select
    Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ExecuteExcel4Macro _
        "PRINT(1,,,1,,,,,,,,2,""CutePDF Writer på CPW2:"",,TRUE,,FALSE)"

   
End Sub
Avatar billede panebb Novice
21. oktober 2007 - 13:32 #9
indholdet af celle D14 i ark2+ansøgning
Avatar billede petert Forsker
21. oktober 2007 - 18:30 #10
Jeg kan ikke få det til at virke.Den gemmer godt nok som ark2+ansøgning som xls fil.
Men så skriver den "run-time error 1004" + "du har intastet for mange argumenter for denne funktion."
I mappen C:\data\Peter\excel ligger "eks. 19-10-2007ansøning.xls"
men ikke C:\data\Peter\excel  "eks. 19-10-2007ansøning.pdf"
Er der nogle ider til hvad jeg gør galt??
Ps jeg har instaleret "CutePDF Writer" men under start/programmer/cutePDF/cutePDF Writer/ligger kun readme og uninstall cutepdf writer er det ok??
/petert
Avatar billede panebb Novice
21. oktober 2007 - 19:11 #11
Du skal kunne se og vælge cutePDF under printere, ligesom de øvrige printere de har adgang til.
Avatar billede petert Forsker
21. oktober 2007 - 19:28 #12
Det kan jeg også vælge.Hvad kan der være galt med makroen??
/petert
Avatar billede panebb Novice
22. oktober 2007 - 08:02 #13
Den virker hos mig. Prøv at indspille en makro selv, så får du sikkert rettet navnet på din Pdf-printer.
Avatar billede petert Forsker
22. oktober 2007 - 14:24 #14
Hej panebb.
Nu lysner det men der mangler lidt. med denne kode virker det næsten.
"Sub makro3()
ChDir "C:\data\Peter\EXCEL\Ansøgninger"
fName = Sheets("Ark2").Range("d14").Value
ActiveWorkbook.SaveAs fName & "ansøgning.xls"
Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True
   
End Sub
"

Hvis jeg er i arket "kørselsregnskab rugby test" og kører ovenstående makro laver den følgende.
Laver en fil ned navn "D14 i ark2+ansøgning.xls" i stien "C:\data\Peter\EXCEL\Ansøgninger" og stopper med en åben dialogbox "save as" med navnet "D14 i ark2+ansøgning.pdf udfyldt. jeg skal så manuelt trykke på safe og så er begge filer lavet. og jeg står så i arket Ansøning.xls.
Kan man ændre koden i makroen således at makroen også trykker safe + lukker ansøgning.xls og går tilbage til arket "kørselsregnskab rugby test"
/petert
Avatar billede panebb Novice
22. oktober 2007 - 14:54 #15
Jeg tror ikke macroen kan "trykke" safe.

Indsæt linien sidst i macroen

Workbooks.Open Filename:="C:\data\peter\excel\kørselsregnskab rugby test.xls"
Avatar billede petert Forsker
22. oktober 2007 - 15:58 #16
Denne linje virkede fint.
(Workbooks.Open Filename:="C:\data\peter\excel\kørselsregnskab rugby test.xls")
Kan man indsætte en kode således at alle *.xls filer i mappen Ansøninger lukker.
(så vil man kun have "kørselsregnskab rugby test.xls" open og så er makroen færdig)
/petert
Avatar billede panebb Novice
22. oktober 2007 - 19:51 #17
Prøv lige dette istedet:

Sub gemluk2()
ActiveSheet.Copy
With ActiveWorkbook
ChDir "c:\data\peter\excel\ansøgninger"
fName = Sheets("Ark2").Range("d14").Value
ActiveWorkbook.SaveAs fName & "ansøgning.xls"
Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True

.Close SaveChanges:=False
End With

End Sub
Avatar billede jss Nybegynder
24. oktober 2007 - 10:36 #18
Jeg har selv rodet med dette tidligere og fandt en god løsning:
http://www.eksperten.dk/spm/492781 - tjek linket http://www.igetit.net/SampleCode/Excel_To_PDF_vba_code.htm
Avatar billede petert Forsker
25. oktober 2007 - 13:22 #19
Sådan så sad den lige i skabet.Tak til alle for inslægene. Særligt Panebb.
Send et svar så vi kan få lukket dette spørgsmål. Det virker fint som det skal.
MVH.
Petert
Avatar billede panebb Novice
25. oktober 2007 - 19:32 #20
Fint at det virkede :-)
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