Avatar billede pjatmail Mester
30. marts 2024 - 07:22 Der er 15 kommentarer og
2 løsninger

"print PDF" knap i excel

Hej
Er det muligt at lave en knap eller det der ligner, hvor man med et enkelt tryk fremstiller en PDF fil?
Og hvis, ja, så hvordan ;-)
Avatar billede claes57 Ekspert
30. marts 2024 - 08:35 #1
hvis Ctrl+P er for meget så
https://www.excelcampus.com/vba/macro-buttons/
du skal jo stadig vælge pdf-printer, placering og filnavn, samt det område, der skal udskrives.
Avatar billede pjatmail Mester
30. marts 2024 - 09:43 #2
:-)
Jeg forstår godt din tanke - det var også kun fordi jeg syntes det kunne være sjovt at få lavet. Men du har helt ret :-)
Indimellem får jeg vist nogle vilde ideer der er lidt over stregen af den sunde fornuft ;-)
Avatar billede MaxZpaD Professor
02. april 2024 - 09:31 #3
Hej pjatmail

Placér denne VBA-kode i kodemodulet for "Denne_projektmappe" og kobl den til en knap i dine ark:

Sub sub_save_pdf()
    With ActiveSheet
        .ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=Me.Path & "\" & .Name & ".pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    End With
End Sub

PDF-filen gemmes med det navn, som står på arkets fane (f.eks. "Ark1").

Hvis du gerne vil have PDF-filen åbnet direkte efter, den er gemt, skal du sætte OpenAfterPublish:=True

Hvis du ikke ønsker hele arkets indhold i PDF-filen, skal du først definere et udskriftsområde under menupunktet Sidelayout -> Sideopsætning
Avatar billede pjatmail Mester
02. april 2024 - 14:59 #4
Det ser spændende ud - jeg har dog ikke nogen anelse om hvor/hvad kodemodulet findes. og ligeledes ved jeg endnu ikke hvordan jeg laver en knap.
Men jeg gør et forsøg :-)
Avatar billede pjatmail Mester
02. april 2024 - 15:55 #5
Jeg tror jeg er på rette vej! Er der noget i den kode du har skrevet som jeg skal ændre navnet på? måske "filename"
Avatar billede pjatmail Mester
02. april 2024 - 16:13 #6
Kan nogen der ses noget ud af vedhæftede billede?
https://1drv.ms/i/s!AvIcTkApQLCagtdEu_butTdVXYorFw?e=D11HEU
Avatar billede MaxZpaD Professor
02. april 2024 - 16:17 #7
Forklaring til: Filename:=Me.Path & "\" & .Name & ".pdf"

Når VBA-koden ligger i kodemodulet "Denne_projektmappe", så er Me = projektmappen (filen) selv.

Hvis du har placeret koden i et andet kodemodul, kan du benytte:
Filename:=ThisWorkbook.Path & "\" & .Name & ".pdf"
Avatar billede MaxZpaD Professor
02. april 2024 - 16:22 #8
ThisWorkbook.Path er stien til den filmappe, hvori din Excel-fil ligger. Det kan f.eks. være "C:\Users\xyz\OneDrive - Mit firma\Documents\Excel\Udvikling"

Herefter tilføjes en back-slash ("\"), så navnet på det aktive ark (.Name) og til slut ".pdf", så Windows kan forstå, det er en PDF-fil.

Fx "C:\Users\xyz\OneDrive - Mit firma\Documents\Excel\Udvikling\Ark1.pdf"
Avatar billede pjatmail Mester
02. april 2024 - 16:40 #9
Okay......måske forstår jeg!
Hvis jeg skal ændre stien som du beskriver så betyder det vel egentligt også at jeg ikke kan sende arket ud til kolleger eller venner - da stien til regnearkets placering vil være forskellig for hver enkelt?
Avatar billede claes57 Ekspert
02. april 2024 - 16:45 #10
Filename er der, hvor filen gemmes. Det du sender ud er pdf-filen, som kun hedder fx 'Ark1.pdf'
(undskyld at jeg lige bryder ind her)
Avatar billede pjatmail Mester
02. april 2024 - 16:48 #11
Du er velkommen :-)
Jeg må se videre på det i morgen, men fornemmer at opgaven er for ny og anderledes til mit brug (evner) - Men faktisk sjovt at prøve :-)
Avatar billede MaxZpaD Professor
02. april 2024 - 17:02 #12
#10 - claes57 - Helt fint med mig at du bryder ind/bidrager til løsningen :-)

#9 - pjatmail - Selv hvis du deler Excel-filen med andre, vil ThisWorkbook.Path stadig virke korrekt, fordi de har jo gemt den på deres egen pc, og så vil det være dén filsti, der "hentes frem" af VBA-koden :-)
Avatar billede pjatmail Mester
02. april 2024 - 18:23 #13
Meget er prøvet og jeg får besked om at der er en syntaksfejl og der er en linje der markeres gul som på vedhæftede https://1drv.ms/i/s!AvIcTkApQLCagtdHpzyJigOTcLOtRw?e=k5JifE
Avatar billede store-morten Ekspert
02. april 2024 - 19:12 #14
Man kan ikke se hele din kode i #13

Men prøv denne lille rettelse:
Sub save_pdf()
    With ActiveSheet
        .ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=Me.Path & "\" & .Name, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    End With
End Sub
Avatar billede pjatmail Mester
02. april 2024 - 19:40 #15
#14
Her er den manglende del af koden
Ark1.pdf, _

Jeg har prøvet med din ændring og nu får jeg denne besked:
Makroen "knap test 1.xlsm`!Denne_projektmappe.sub_save.pdf´ kan ikke køres. Makroen er måske ikke tilgængelig i denne projektmappe, eller alle makroer er deaktiveret.

Disse indstillinger har jeg lavet, men ved ikke om det er rigtigt.
https://1drv.ms/i/s!AvIcTkApQLCagtdKEsatNNqCqwtkUA?e=U6VMAB
Avatar billede store-morten Ekspert
02. april 2024 - 20:12 #16
Avatar billede pjatmail Mester
04. april 2024 - 15:26 #17
#16
Der var en rigtig god løsning. Tak for den 👍
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