2.3k Aufrufe
Gefragt in Tabellenkalkulation von nero022 Mitglied (179 Punkte)
Hallo da bin ich schon wieder :) habe leider nichts passendes
gefunden und wäre euch dankbar wenn ihr mir dabei noch helfen
könntet...?!

Ich möchte eine PDF Datei Drucken die unter D:\Test\.... liegt.
unter Test sind auch noch unterordner die er mir durchsuchen müßte.

jetzt möchte ich das ich in meiner Excel ein makro aktiviere und sich
dan eine juserform öffnet wo ich den namen der PDF datei eingeben
kann und er sie mir dann druckt.

ist das irgend wie möglich.....?

Danke schon ein mal für eure Hilfe.

7 Antworten

0 Punkte
Beantwortet von nighty Experte (6.5k Punkte)
hi :-)

hab ich im anderen Forum entdeckt ^^
musst dich also einarbeiten,da ich es nicht geschrieben hab :-)

gruss nighty

Sub pdf_mit_AR_drucken()
Set fs = CreateObject("Scripting.FileSystemObject")
Set WSHShell = CreateObject("WScript.Shell")
'Standarddrucker ermitteln
Dim objWMI As Object, objItem As Object
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
ExecQuery("Select * from Win32_Printer where Default = 'true'")
On Error Resume Next
For Each objItem In objWMI
standarddrucker = objItem.properties_.Item("Name").Value
Next
Set objWMI = Nothing
'Pfad zum AdobeReader ermitteln
On Error Resume Next
strBezeichnung = WSHShell.RegRead("HKCR\.pdf\")
strZuordnung = WSHShell.RegRead("HKEY_CLASSES_ROOT\" & strBezeichnung & "\shell\open\command\")
strZuordnung = Replace(strZuordnung, Chr(34), "")
posEXE = InStr(UCase(strZuordnung), ".EXE")
If posEXE > 0 Then
anwendung = Left(strZuordnung, posEXE + 3)
' MsgBox anwendung
Else
MsgBox "Installieren Sie erst Adobe Reader,dann versuchen wir weiter."
Exit Sub
End If
prog = fs.getfile(anwendung).shortpath & " /t "
'Datei zum Drucken auswählen
datei = Application.GetOpenFilename("PDF Dateien (*.pdf), *.pdf")
If VarType(datei) = vbBoolean Then Exit Sub
datei = fs.getfile(datei).shortpath
'Datei drucken
prog = prog & datei & " " & Chr(34) & standarddrucker & Chr(34)
' MsgBox prog
WSHShell.Run prog, 6, False
pause
Set WSHShell = Nothing
Set fs = Nothing
End Sub


Sub Programm_killen()
strComputer = "."
'zu killendes Programm 'AcroRd32.exe'
strProgramm = "'AcroRd32.exe'"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = " & strProgramm)
For Each objProcess In colProcessList
objProcess.Terminate
Debug.Print objProcess.Name
Next
End Sub


Sub pause()
Application.OnTime Time + TimeValue("00:00:05"), "reader_killen"
End Sub


Sub reader_killen()
Dim druck As String
druck = ""
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colPrintJobs = objWMIService.ExecQuery("Select * from Win32_PrintJob")
For Each objPrintJob In colPrintJobs
druck = druck & objPrintJob.Name
Debug.Print druck
Next
If druck = "" Then
Programm_killen
Else
pause
End If
End Sub
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
Hallo nighty ,danke dir erst ein mal !!
bei diesem makro muß ich aber leider die pdf datei selber suchen und das ist das was ich gerne
vermeiden möchte...
und umschreiben dafür habe ich leider noch nicht die erfahrung bei diesem makro :(
0 Punkte
Beantwortet von nighty Experte (6.5k Punkte)
hi :-)

funktioniert es denn ansonsten ,ohne fehler ???

wenn es nur am pfad liegt aender ich es
der pfad wird dann fest in das makro geschrieben

oder wie dachtest du ?

gruss nighty
0 Punkte
Beantwortet von ericmarch Experte (4.6k Punkte)
bei diesem makro muß ich aber leider die pdf datei selber suchen und das ist das was ich gerne
vermeiden möchte...

Hmtja; denkst du denn, dass ein Makro hellseherische Kräfte hat welches PDF es zu drucken gilt? Minimal muss ein Einstiegesordenr da sein ab dem optimal eine einzige PDF gefunden werden kann die zu drucken ist.

Ich kann mir vorstellen per UserForm alle PDFs in einem Ordner (Ordnersrtuktur) aufstellen zu lassen um darauf zuzugreifen; so was habe ich mir analog selbst programmiert.

Eric March
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
Zitat:
Hmtja; denkst du denn, dass ein Makro hellseherische Kräfte hat welches PDF es zu drucken gilt?


nein das denke ich nicht das habe ich aber auch oben geschrieben...!

Ich möchte eine PDF Datei Drucken die unter D:\Test\.... liegt.
unter Test sind auch noch unterordner die er mir durchsuchen müßte.

jetzt möchte ich das ich in meiner Excel ein makro aktiviere und sich
dan eine juserform öffnet wo ich den namen der PDF datei eingeben
kann und er sie mir dann druckt.

Hallo nighty,
nein leider sind noch fehler da aber ich kann dir nicht sagen worann es liegt...
ich aktiviere das makro dan wähle ich die pdf und er öffnet sie mir aber dann war es das auch schon
weite geht er nicht... und wenn ich das makro noch ein mal starte geht er gleich im debug modus.
in diesem bereich...
Sub Programm_killen()
strComputer = "."
'zu killendes Programm 'AcroRd32.exe'
0 Punkte
Beantwortet von nighty Experte (6.5k Punkte)
hi :-)

hab nicht die zeit zum einarbeiten

vielleicht koennen da andere member helfen

gruss nighty
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
schade da sich hier keiner mehr meldet,werde ich mir wohl eine anderre
möglichkeit suchen !!!
aber danke an alle die sich hierdrauf gemeldet haben !!!

Lg.nero
...