• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Automatisch bestand laten afdrukken

Status
Niet open voor verdere reacties.

Modya

Gebruiker
Lid geworden
29 mei 2012
Berichten
66
Hoe kan ik een pdf bestand automatisch laten afdrukken met een aanvink-optie in een kolom ernaast?

BV. In C1 heb ik een "aanvinkvakje" en het bestand (met hyperlink) in D1 moet dan direct worden afgedrukt. Is dit te realiseren?
 

Bijlagen

Om te controleren of het vakje is aangevinkt kun je de volgende code in een module zetten:

Code:
Sub chkPrint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
    If s.Name = "Check Box 1" Then
        If s.DrawingObject.Value = 1 Then
            Call PrintPDF
        End If
    End If
Next s
Set sh = Nothing
End Sub

Vervolgens kun je dan de macro chkPrint toewijzen aan dat object.
Ik ga er vanuit dat dat je vraag was.
De macro PrintPDF moet je dan nog wel even maken.
Als je daar hulp bij nodig hebt lezen we dat wel.
 
Bedankt voor je antwoord, maar dit is de bedoeling:

Ik vink het vakje aan en dan wordt het pdf (of word) bestand direct uitgeprint. Let wel: dit bestand staat dus in een map en is niet geopend.

Ik zoek dus een macro met printopdracht van een pdf bestand.
 
Dat is dan de code die in de macro PrintPDF moet worden gezet.
Wat daar in moet staan is even afhankelijk van de PDF reader die je gebruikt.
Die kun je dan in een SHELL opdracht aanroepen met de juiste parameters en dan naam van de PDF die je uit de cel leest.
Dus, welke PDF reader gebruik je?

Voor de Adobe reader kun je dat hier vinden:
http://www.mrexcel.com/forum/excel-questions/69731-printing-pdf-files.html
 
Laatst bewerkt:
Adobe reader.

Ik weet helemaal niet hoe ik dat moet doen, verder. Wil je daar bij helpen?
 
Ik heb net een link geplaatst in m'n vorige reactie.
 
Ik heb de link bekeken, maar welke macro moet ik nu pakken voor mijn situatie en hoe maak ik hier een macro van? Ik ben echt een leek hierin.


Mijn pdf-file zit in deze map: =HYPERLINK("P:\DATABANKEN\GWW\2287664.pdf"; "2287664.pdf")
 
Ik kan het even niet testen maar probeer het eens zo:

Code:
Sub chkPrint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
    If s.Name = "Check Box 1" Then
        If s.DrawingObject.Value = 1 Then
            Call PrintPDF(Cells(1, 8).Text)
        End If
    End If
Next s
Set sh = Nothing
End Sub

Sub PrintPDF(pdfName)
    Dim pdfReader As String
    Dim pdfPath As String
    
    pdfReader = "C:\Program Files\acroread\Reader\AcroRd32.exe "
    pdfPath = "P:\DATABANKEN\GWW\" & pdfName
    Shell """" & pdfReader & """ /p /h """ & pdfPath & """"
End Sub

Vergeet niet de macro chkPrint aan de checkbox toe te wijzen.
Controleer ook het pad naar AcroRd32.exe die ik in het voorbeeld heb gebruikt.
Tevens moet je het document opslaan als document met macro's, dus een .xlsm
 
Laatst bewerkt:
Het lukt me niet, hoor. Hoe voeg ik de makro chkPr aan de checkbox toe?
 
Klik met rechts op het vink vakje en kies "Marco toewijzen"

Ik was ook nog vergeten om in die PrintPDF macro de opdracht MsgBox te wijzigen in Shell.
 
Laatst bewerkt:
Wijzig die /p /h eens in /P en /H
Hoofdletters dus, ik heb het hier getest. Met kleine letter werkt het niet, met hoofdletters wel.
 
Bij nader inzien is in plaats van /P en /H het misschien beter om /N en /T te gebruiken.
Acrobat laat wel altijd 1 window van zichzelf open staan.
Je zou dus ook een ander PDF programma kunnen proberen, daar zijn er genoeg van.
Dan met je alleen ook even zoeken naar de command line switches van dat programma.
 
Dan weet ik niet wat je verkeerd doet, hier werkt het prima.
Je heb wel dit:
pdfReader = "C:\Program Files\acroread\Reader\AcroRd32.exe "
naar je eigen situatie aangepast?
Wel die spatie aan het einde laten staan!
Staat je default printer goed?
 
Laatst bewerkt:
Ja, volgens mij heb alles goed gekopieerd. Is het misschien mogelijk dat je het in mijn meegestuurde file plaatst?




Sub chkPrint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If s.Name = "Check Box 1" Then
If s.DrawingObject.Value = 1 Then
Call PrintPDF(Cells(1, 8).Text)
End If
End If
Next s
Set sh = Nothing
End Sub

Sub PrintPDF(pdfName)
Dim pdfReader As String
Dim pdfPath As String

pdfReader = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe "
pdfPath = "C:\Users\Kantoor\Documents\DATABANKEN\GWW\" & pdfName
Shell """" & pdfReader & """ /P /H """ & pdfPath & """"
End Sub
 
Ik heb hem aan het printen. Alleen nog via een omweg. Ik moet nl "Macro uitvoeren" aanklikken bij de macro's. Hij gaat nog niet automatisch printen zodra ik aanvink.
Nu heb ik deze vinkcel ook gekopieerd naar een andere cel, met een ander bestand, maar daar doet hij het niet. Hoe kan ik dit oplossen?
 
Dat hij het daar niet doet is logisch omdat de namen van de objecten anders zijn.
Lees die code en probeer te begrijpen wat daar staat dan weet je wat je moet doen om er mee verder te gaan.

Daarnaast kun je denk ik makkelijker een knopje gebruiken dan een vinkje.
 
Laatst bewerkt:
Ja, daar heb ik ook al aan gedacht. In ieder geval, hartelijk bedankt voor de hulp. Fijne dag nog.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan