Avatar billede nak01 Juniormester
20. oktober 2017 - 14:45 Der er 16 kommentarer

Oprette to faneblade som PDF og gemme fil me fakturanummeret

Hejsa,
Har en workbook med mange sheets, som jeg bruger til faktura udskrivning.
Jeg ønsker at kunne markere to sheets (faktura+bilag), gemme de markerede sheets som PDF og hvor filnavnet skal være fakturanummeret, som står i f.eks  celle A1 på "faktura"

PDF filen skal gemmes på en sti / folder, der f.eks. hedder : C:\Excel\Faktura

Håber der er nogle der kan give mig lidt kode til at løse dette :-)
Avatar billede acore Ekspert
20. oktober 2017 - 15:10 #1
Optag det som makro og ret i den - det ser ud til, at det kun er fakturanummeret, der skal rettes.
Avatar billede cht22 Professor
20. oktober 2017 - 15:13 #2
Du kan måske se på dette program det kan konvertere excel til pdf. Jeg har ikke selv prøvet det så jeg ved ikke helt hvordan det virker.

http://www.weenysoft.com/free-pdf-to-excel-converter.html

Jeg har prøvet deres program til at konvertere html til pdf og det virker rigtig godt.
Avatar billede acore Ekspert
20. oktober 2017 - 15:55 #3
Nå ja, du skal også have en pdf printer installeret - fx bullzip - er gratis.
Avatar billede falster Ekspert
20. oktober 2017 - 16:36 #4
Anbefaler PDFCreator som konverter:

http://www.pdfforge.org/blog/pdfcreator-30-release
Avatar billede falster Ekspert
20. oktober 2017 - 16:38 #5
Forslaget i #2 ser ud til at være den modsatte vej. Fra pdf til Excel.
Avatar billede cht22 Professor
20. oktober 2017 - 16:50 #6
Avatar billede cht22 Professor
20. oktober 2017 - 16:51 #7
#6 Det ser kun ud til at være online
Avatar billede jkrons Professor
20. oktober 2017 - 22:15 #8
Prøv denne makro:

Sub GemPDF()
    Dim nabnv As String
    navn = Sheets("Faktura").Range("a1").Value
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Excel\Faktura\" & navn & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
End Sub

De to ark skal være markeret inden du afspiller makroen.
Avatar billede Dan Elgaard Ekspert
22. oktober 2017 - 19:25 #9
Prøv, at læse denne tråd:
https://www.computerworld.dk/eksperten/spm/1019856

Dette er vist, mere eller mindre, hvad du efterspørger :-)
Avatar billede nak01 Juniormester
23. oktober 2017 - 09:48 #10
Svar til jkrons:
Tak…. lige hvad jeg manglede.
Min tanke var at lave en makroknap, der samtidig markerede de to faneblade.
Jeg har derfor tilføjet denne linje i din kode:

Sheets(Array("Faktura", "Bilag")).Select

Det virker som sådan efter hensigten, men problemet er, at i PDF filen vises ”Bilag” før ”Faktura”.
Mit ønske var det modsatte…at fakturaen står først og dernæst bilaget.
Jeg tænker at det skyldes rækkefølgen på fanebladene i min workbook, her er ”Bilag” nemlig placeret  før ”Faktura”
Findes der en smart løsning på det, eller skal jeg ommøblere min  workbook ?
Avatar billede Dan Elgaard Ekspert
23. oktober 2017 - 10:23 #11
Det er præcist på grund af rækkefølgen :-)

Enten skal du ændre rækkefølgen i din workbook, som du selv nævner, eller også skal du lave en lille sub-rutine i din makro, der ændre rækkefølgen, før udskrift, og ændre tilbage igen, efter udskrift.
Avatar billede nak01 Juniormester
23. oktober 2017 - 14:47 #12
#8
Hej igen....
Et yderligere spørgsmål (mer vil ha mer :-) )
Hvis jeg ønsker at gemme den same fil I en anden folder også, hvordan er koden så på det?
DVS at den skal gemme både I : C:\Excel\Faktura\
plus : C:\Excel\Legal\
Avatar billede Dan Elgaard Ekspert
23. oktober 2017 - 15:33 #13
Så laver du blot samme linje en gang til, men udskifter stien:

Altså både...

  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Excel\Faktura\" & navn & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

...og...

  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Excel\Legal\" & navn & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True

Dog vil jeg nok sætte 'OpenAfterPublish" til 'False' på den første...
Avatar billede jkrons Professor
24. oktober 2017 - 12:53 #14
Du har helt ret i, at Excel udskriver (også til PDF) i den rækkefølge arkene står i mappen, men du gbehøver ikke at lave om på rækkefølgen permanent. Du kan lade makroen gøre det for dig:

Sub GemPDF()
    Dim navn As String
    Dim foerark As String
    navn = Sheets("Faktura").Range("a1").Value
    foerark = Sheets("Faktura").Previous.Name
    Sheets("Faktura").Move Before:=Sheets("Bilag")
    Sheets(Array("Bilag", "Faktura")).Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Excel\Faktura\" & navn & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
  Sheets("Faktura").Move after:=Sheets(foerark)
End Sub

Her flytter makroen "Fatura" hen før "Bilag", laver pdf-filen og flytter Faktura tilbage, hvor arket oprindeligt var placeret.
Avatar billede Dan Elgaard Ekspert
24. oktober 2017 - 16:53 #15
#14: Altså, præcist, som jeg skrev i #11  :-)
Avatar billede nak01 Juniormester
26. oktober 2017 - 13:38 #16
Takker for brugbart input fra jkrons & Dan Elgaard.

Har implementeret det hele I min fil.....og det virker perfekt :-)
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

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