Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Ordner im Makro öffnen, drucken, dann schließen
#1
Guten Morgen zusammen,

ich möchte aus einem Makro heraus einen Ordner auf meinem Laufwerk öffnen, dort eine Pdf Datei auswählen, diese drucken, Ordner schließen und dann das Makro weiter laufen lassen. Hat jemand dazu evtl. eine gute Idee ?


Grüße Wexel
Antworten Top
#2
Niemand einen Ansatz ?
Antworten Top
#3
Hallo Wexel

ich kann dir auf die schnelle einmal den Codeteil geben aus einem anderen Thread. Den must du auf deine Bedürfnisse anpassen.  Zum Datei Öffnen kann man ganz oben Konstante Werte für Pfad und ;Dateiname angeben, wenn der Dateiname immer gleich bleibt.  Sonst kannst du den Pfad und Dateinamen aus einer Zelle laden. Dazu must du das richtige Blatt und die richtige Zellen angeben.  

Den Teil zum drucken zeichnest du am besten mit dem Makro Recorder auf und fügst den Codeteil einfach ins untere Makro ein. 
Wenn du alles richtig anpasst sollte es klappen. In diesem Sinnne .... 

mfg  Gast 123

Code:
Option Explicit         '24.1.2017  Gast 123  Clever Forum

Const Pfad = "E:\Excel Forum"          'Pfad als Konstante
Const Datei = "Meine Datei.xlsx"       'Datei als Konstante


Sub Daten_öffnen_undDrucken()
Dim Pfad As String, Datei As String

   On Error GoTo Fehler
   'Datei Öffnen, Pfad + Datei Name in Zellen
   Pfad = ThisWorkbook.Sheets(1).Range("J1").Value
   If Right(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
   Datei = ThisWorkbook.Sheets(1).Range("J2").Value
   
   'Workbook Öffnen über Pfad & Datei
   Workbooks.Open Filename:=CStr(Pfad & Datei)
   
   
  '***   hier kommt der Codeteil zum drucken  *******
   
  '***   Drucken Ende
   
  Workbooks(Datei).Close
Exit Sub

Fehler:  MsgBox "unerwarteter Fehler (beim Öffnen) ??" & Chr(10) & Error()
End Sub
Antworten Top
#4
Jein, ich möchte keine Datei öffnen, auswählen zum drucken reicht mir.

zb. möchte ich
Start Makro

es öffnet sich mein Pfad G:/Auto/Audi öffnen.

in dem Ordner Audi gibts kann ich dann A1.pdf, A2.pdf, A3.pdf usw. auswählen

Daraus möchte ich dann A2.pdf auswählen und drucken.(muss nicht geöffnet sein oder werden)

Pfad schließen, makro läuft weiter ..
Antworten Top
#5
Hallo, :19:

probiere es mal so der Spur nach - als Ansatz: :21:


Code:
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
     ByVal hwnd As Long, _
     ByVal lpOperation As String, _
     ByVal lpFile As String, _
     ByVal lpParameters As String, _
     ByVal lpDirectory As String, _
     ByVal nShowCmd As Long) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Public Sub Main()
    Const strPath As String = "C:\Temp\"
    Dim varTMP As Variant
    On Error GoTo Fin
    ChDrive "C:\"
    ChDir strPath
    varTMP = Application.GetOpenFilename("PDF Dateien (*.pdf),*pdf")
    If varTMP <> False Then
        ShellExecute GetActiveWindow, "print", varTMP, "", strPath, 0&
    End If
Fin:
    Application.Wait Now + TimeSerial(0, 0, 5)
    Call Reader_weg
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub
Private Sub Reader_weg()
    Const STRPC As String = "."
    Dim objProcesses As Object
    Dim objProcess As Object
    Dim objWMI As Object
    Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & STRPC & "\root\cimv2")
    Set objProcesses = objWMI.ExecQuery("Select * from Win32_Process Where Name = 'acrord32.exe'")
    For Each objProcess In objProcesses
        objProcess.Terminate
    Next objProcess
End Sub
________
Servus
Case
Antworten Top
#6
Hat jemand ggf´s noch einen anderen Vorschlag, komme bisher nicht wirklich weiter...
Antworten Top
#7
Hi,

haste schon gegooglet?

https://www.google.de/search?q=aus+excel+pdf+drucken+vba&rlz=1C1GIWA_deDE716DE716&oq=aus+excel+pdf+dr&aqs=chrome.2.69i57j0l4.18096j0j7&sourceid=chrome&ie=UTF-8

is da auch nicht das dabei was du brauchen könntest?
Antworten Top
#8
Natürlich habe ich auch schon gegoogelt..

Vom Ansatz her passt der Code von Case ja auch, PDF auswählen, alles super.

Dann gehts aber nicht weiter, kein Druck, kein Adobe öffnen etc.. (Zeit zum Adobe schließen habe ich auch schon verlänger)

MfG
Antworten Top
#9
Hallo, :19:

was passiert denn, wenn Du im Explorer mit der rechten Maustaste eine PDF-Datei anklickst und dann "Drucken" auswählst?
________
Servus
Case
Antworten Top
#10
Case,

wenn ich das so versuche, kann ich Löschen, Senden, Umbenennen, Öffnen etc, aber nicht drucken..
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste