pdf en printen macro in Word2 019

Status
Niet open voor verdere reacties.

boppe

Gebruiker
Lid geworden
26 aug 2010
Berichten
69
In Word 2019 probeer ik een knop toe te voegen, zodat de medewerkers met 1 knop het document in pdf en in de juiste map kunnen zetten.

Code:
Private Sub CommandButton1_Click()
Dim Map As String
Dim Bestandsnaam As String
Dim Extentie As String
    
    Map = "C:\RvB\"                 'Vul hier tussen de aanhalingstekens de opslagmap in
    Bestandsnaam = InputBox("Typ de bestandsnaam", "Bestandsnaam invullen")
    Extentie = ".PDF"
    If Not Bestandsnaam = "" Then
        ActiveDocument.SaveAs FileName:=Map & Bestandsnaam & Extentie
        MsgBox "Je RvB is met succes opgeslagen.", vbInformation, "Opslaan"
    End If
End Sub

Maar op deze manier is de PDF niet te openen. Hier staat een fout in, maar foutopsporing vindt niks.
Kan de messagebox (na het maken van de PDF) worden uitgebreid met de vraag: wil je dit documenten printen, en zo ja dat ie deze direct print.

Groet Robert
 
Alleen de extensie veranderen en dan niet het documenttype werkt natuurlijk niet.
Code:
Sub mcrPDF()
Dim Map As String
Dim Bestandsnaam As String
    
    Map = "E:\RvB\"                 'Vul hier tussen de aanhalingstekens de opslagmap in
    Bestandsnaam = InputBox("Typ de bestandsnaam", "Bestandsnaam invullen") & ".pdf"
    ActiveDocument.ExportAsFixedFormat OutputFileName:=Map & Bestandsnaam, ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, UseISO19005_1:=False
End Sub
 
macro werkt niet meer na bewerking beperken

Ik had eerder een vraag over het ver-pdf-seren van een invulsheet in Word.

Voor het idee:
In een invulveld heb ik een knop met Opslaan als PDF. Die knop moet niet meegeprint worden. Zoals hieronder werkt dat mooi.

Code:
Private Sub CommandButton1_Click()
Dim Map As String
Dim Bestandsnaam As String
ActiveWindow.SmallScroll Down:=-35

With ActiveDocument
    .Shapes(1).Visible = msoFalse
    
    Map = "C:\RvB\"                 'Vul hier tussen de aanhalingstekens de opslagmap in
    Bestandsnaam = InputBox("Idem als de mail, bijvoorbeeld:  W-postcode+nr-plaats-naam", "Bestandnaam invullen") & ".pdf"
    ActiveDocument.ExportAsFixedFormat OutputFileName:=Map & Bestandsnaam, ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, UseISO19005_1:=False

    .Shapes(1).Visible = msoTrue
End With
End Sub

Maar...
Wanneer ik het invulveld met 'bewerking beperken' beveilig (formulieren invullen), dan werkt de bovenstaande code maar een heel klein beetje. Alleen de scrollup werkt als die knop ingedrukt wordt, verder geen foutmelding, geen pdf, geen popup. niks. Zet ik de beveiliging weer uit, werkt het weer...

Wie heeft hier een oplossing voor?

Robert
 
Zet aan het begin van de code de beveiliging uit, en aan het eind weer aan. Ben benieuwd wat een ‘scrollup’ is; mag je nog even uitleggen :).
 
Nog twee vragen omtrent deze code:

even de beveiliging uit- en later weer aanzetten...
Dat klinkt eenvoudig als je weet hoe. Via de macroknop opnemen kom ik er niet achter. Kun je me iets verder helpen?

Wanneer de popup verschijnt om een bestandsnaam in te vullen en hier wordt op annuleren of kruisje gedrukt, verschijnt er een foutmelding (foutopsporing zegt: bij de regel die begint met: ActiveDocument.ExportAsFixedFormat OutputFileNa...)
Is dat op te lossen?

Mbt een scrollup, hahaha. Het invuldocument kent aan de onderzijde van het formulier een oplsaanknop. Wanneer een bestandsnaam ingevuld moet worden, hebben de gebruikers de gegevens nodig uit 3 velden die allemaal bovenin staan. Als die popup er is, kun je de achtergrond niet meer naar bovenscrollen, vandaar dat ik het in de macro voor ze doe.

Het mooiste was geweest dat in word de bestandsnaam automatisch kon laten genereren, zoals ik dat in Excel ook heb. De bestandsnaam bestaat dan bijvoorbeeld uit cel B2+B4+B6. Ik begrijp dat het met word ook wel enigszins mogelijk is, maar nog te ingewikkeld voor mij. Dus daarom de popup met bestandsnaam.
 
Nog steeds simpel, maar met iets meer code :)

Code:
Private Sub CommandButton1_Click()
Dim Map As String
Dim Bestandsnaam As String
ActiveWindow.SmallScroll Down:=-35

With ActiveDocument
    .Unprotect
    .Shapes(1).Visible = msoFalse
    Map = "C:\RvB\"                 'Vul hier tussen de aanhalingstekens de opslagmap in
    Bestandsnaam = InputBox("Idem als de mail, bijvoorbeeld:  W-postcode+nr-plaats-naam", "Bestandnaam invullen") & ".pdf"
    ActiveDocument.ExportAsFixedFormat OutputFileName:=Map & Bestandsnaam, ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, UseISO19005_1:=False
    .Shapes(1).Visible = msoTrue
    .Protect wdAllowOnlyFormFields
End With
End Sub

Heb je een wachtwoord erop staan, dan moet dat er uiteraard wel bij.
 
Nee, helaas. dit werkt niet

Ik zal het bestand eens toevoegen, dat zegt je mogelijk wat meer
Het originele bestand was een .dotm, maar die kon ik niet uploaden.
 

Bijlagen

  • RvB_20201020_TEST.docm
    43 KB · Weergaven: 27
Een sjabloon (dotm) zul je eerst moeten zippen. Dat maakt overigens voor de vraag niet uit, dus ik kijk hier wel even naar.
 
Wat doet-ie bij jou dan niet goed?
 

Bijlagen

  • Testje Rob.pdf
    112,2 KB · Weergaven: 28
Helemaal vreemd dat het wel bij jou zou werken.

Ik heb nu de .dotm meegestuurd.

Als je dit bestand normaal opent (niet in de ontwikkelaarsmode) en het de bewerkingen zijn beperkt (geen wachtwoord), dus met de tab kun je alleen langs de invulvelden hoppen, zou het moeten werken, alleen niet bij mij. Wat gebeurt er bij mij:


Case A: De fout die ik krijg zoals het meegestuurde formulier, inclusief bewerkingen beperkt:
- na indrukken knop, komt er geen popup, geen PDF en het enige wat gebeurt is dat het beeld naar boven scrollt.

Case B: Wanneer ik de beveiliging stop en druk opnieuw die knop in:
- komt er een foutmelding. Foutopsporing valt over .Unprotect

case C: Wanneer ik in de macro .unprotect & .protect... verwijder, en vervolgens het formulier weer beveilig:
- idem als case A

Case D: Wanneer ik in de macro .unprotect & .protect... verwijder, en vervolgens het formulier zonder beveiliging heb
- dan werkt het. (maar dat wil ik dus liever niet, liever als case A)

Ik hoop dat het ietsje duidelijker is
 

Bijlagen

  • RvB_20201020_TEST.zip
    36,7 KB · Weergaven: 24
Ik denk dat ik het probleem kan reproduceren.

Wanneer het document is beveiligd met de onderstaande optie aangevinkt:

2: bewerkingsbeperkingen
- formulieren invullen

dan werkt het niet.

Vink ik het bovenstaande niet aan en ik beveilig het, dan werkt het wel.
 
maar ja, dat is niet de bedoeling...

@octafish, al naar kunnen kijken?
 
Laatst bewerkt:
Ik heb het idee met die knop in het document overboord gegooid en nu via snelle toegang een knop toegevoegd. Dat lijkt prima te werken, maarrr

De betreffende macro:
Code:
Sub Oplaan_PDF()
Dim Map As String
Dim Bestandsnaam As String
ActiveWindow.SmallScroll Down:=-35

    Map = "C:\RvB\"                 'Vul hier tussen de aanhalingstekens de opslagmap in
    Bestandsnaam = InputBox("Idem als de mail, bijvoorbeeld:  W-postcode+nr-plaats-naam", "Bestandnaam invullen") & ".pdf"
    ActiveDocument.ExportAsFixedFormat OutputFileName:=Map & Bestandsnaam, ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, UseISO19005_1:=False
End Sub

Nog een klein probleem:
Bij het verschijnen van de popup en ik druk op Annuleren of X, komt er een foutmelding. Foutopsporing stopt bij de zin: ActiveDocument.ExportAsFixedFormat... etc
Kan dat nog opgelost worden?

Groet Robert
 
Toevoeging nodig in onderstaande situatie?

-wanneer je het PDF-bestand na het opslaan nog steeds geopend hebt is in een PDF-reader
-daarna wederom het vanuit het WORD-document het bestand opslaat als PDF met dezelfde (bestands)naam
-dan is dit natuurlijk niet mogelijk (omdat het PDF-bestand nog geopend is)
-maar hoe kun dit in het VBA-script ondervangen ??
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan