afdrukken naar pdf volgens celwaarde zonder dat...

Status
Niet open voor verdere reacties.

Daan Geven

Gebruiker
Lid geworden
2 dec 2008
Berichten
6
Met behulp van de macro moet het excelblad naar pdf formaat afgedrukt worden. De naam van het pdf bestand krijgt de waarde een cel. Hier kom ik wel uit; alleen wil ik niet hebben dat het excelbestand van naam veranderd wat nu volgens onderstaande code wel gebeurt.

Sub Afdrukken()

Sheets("Blad1").Activate
ChDir "C:\........"
Sheets("Blad1").SaveAs Filename:=Range("A1").Value & ".xlsm"
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,""Adobe PDF op Ne03:"",,True,,)"

End Sub

Ook print de PDF het bestand neer op een willekeurige locatie; hoe krijg ik hier inspraak op?

Hopelijk kan iemand met wat meer kennis mij helpen, want ik ben slects een beginneling in VBA..
 
Hallo Daan!

Als ik het goed begrijp wil je een sheet uit een workbook saven als PDF. Vooreerst moet ik zeggen dat ik geen kaas heb gegeten van Office 2007. Ik heb wel eens gelezen dat daarin de mogelijkheid bestaat om iets (Wordbestand, Excel,…) te saven als PDF, maar ik ben er niet van op de hoogte. Ik werk nog met Excel 2002 en daar heb ik misschien een oplossing voor je probleem.

In je code vind ik zowel de woorden save en print terug. Wat je exact wil bereiken zie ik niet zo zitten, maar in feite hoeven we alleen maar te printen, maar dan wel op een enigszins bijzondere manier. We maken daarbij gebruik van PDFCreator. Die is gratis te downloaden van http://www.pdfcreator.org

Als je PDFCreator geïnstalleerd hebt, dan heb je er een printerdriver bij. Als je die kiest in plaats van je gewone printerdriver, dan leidt PDFCreator de printuitvoer af naar een PDF-bestand in plaats van naar je printer. Zo kan je van gelijk welke printopdracht een PDF-bestand maken.

Wat je er ook bij krijgt na de installatie is een toegang tot een “PDFCreator-Object” met alles er op en er aan (properties, methods, events). Meer informatie over dat object zou je moeten kunnen terugvinden in
c:\Program Files\PDFCreator\PDFCreator_english.chm.

Er zit ook nog een voorbeeld van een UserForm bij in c:\Program Files\PDFCreator\COM\Ms Office. Die UserForm bevat de code voor Word. Na enkele aanpassingen heb ik die geïntegreerd in het Excelbestand in bijlage en dat blijkt wel te werken. Bij mij althans. Het resultaat is TestFile.pdf in bijlage.

Wat je niet mag vergeten is een referentie te zetten in je VBProject. Zie screenshot in bijlage.

Mocht het niet zijn wat je zoekt, dan kan je er misschien wel gebruik van maken als vertrekbasis om verder uit te bouwen.

Grtz,
MDN111.
 

Bijlagen

  • PrintSheetAsPdf.xls
    38 KB · Weergaven: 49
  • TESTFILE.pdf
    1,8 KB · Weergaven: 48
  • Screenshot-Reference.jpg
    Screenshot-Reference.jpg
    80,7 KB · Weergaven: 39
Laatst bewerkt:
Beste MDN111,

Hartelijk dank voor je reactie.

Ik ga er morgen meteen mee aan de gang!
 
Beste MDN111,

Misschien een stomme vraag: Hoe voeg je een referentie toe. Je hebt mij een screenshot gestuurd maar ik krijg dat menu nergens gevonden..!
 
Aan Wigi

Dag Wigi !

Omdat ik zie dat je gereageerd hebt op de laatste vraag van Daan Geven, vroeg ik mij af of je de topic ook van naderbij hebt bekeken. Mocht dat zo zijn, dan heb ik nog een vraag voor je.

De eerste oplossing komt dus voort uit een Word-macro die ter beschikkig komt na installatie van PDFCreator en die ik aangepast heb voor Excel. Als je echter het proces wil automatiseren is die werkwijze niet erg praktisch want dan ben je verplicht om iedere keer de Userform op te roepen.

Daarom is de tweede mogelijkheid (die van ene meneer Ken Puls) efficiënter, maar die maakt geen gebruik van de events eError() en eReady(). Ik heb zo'n vermoeden dat dit te wijten is aan het feit dat men het keyword Withevents alleen maar kan gebruiken in een class-module of een Userform.

Vandaar mijn vraag: heb je enig idee hoe men gebruik zou kunnen maken van die events en toch de tweede werkwijze zonder Userform toepassen?

Grtz,
MMD111.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan