Office - Word, Excel und Co. 9.744 Themen, 41.408 Beiträge

Excel/VBA Druckmenü

incognito_23 / 14 Antworten / Flachansicht Nickles

Hallo,

ich (und das Internet) arbeite/n zur Zeit an einem Druckmenü. Im Grunde funktioniert es auch. Ich habe jedoch noch ein Problem mit der Anzahl der Ausdrucke. Und zwar soll über den Wert einer Zelle, die Anzahl der Ausdrucke definiert werden. 

Das Modul sieht wie folgt aus:

Option Explicit

Public Declare PtrSafe 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

Public hWnd As Long
Public Const SW_HIDE = 0 ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3 ' Maximiert öffnen
Public Const SW_MINIMIZE = 6 ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4

Public Function DateiOeffnen(Aktion As String, Pfad As String, _
Ansicht As Long) As Boolean
Call ShellExecute(hWnd, Aktion, Pfad, "", "", Ansicht)
End Function

Und die jeweiligen Buttons sind wie folgt aufgebaut: 

Private Sub Button1_Click()
Dim Pfad As String
Pfad = "Z:\xxx\test.pdf"
DateiOeffnen "print", Pfad, SW_MAXIMIZE
End Sub

Nun dachte ich mir, dass man einfach einen Loop einbauen kann:

Private Sub Mathetest_Click()
Dim Pfad As String
Dim i As Long
For i = Worksheets("2").Cells(1, 1).Value To Worksheets("2").Cells(1, 1).Value
Pfad = "Z:\bae\Druckmenü\Dokumente\Testseite.pdf"
DateiOeffnen "print", Pfad, SW_HIDE
Next i
End Sub

Steht nun eine 2 in der Zelle, öffnet sich Acrobat Reader auch zweimal aber druckt nur einmal die PDF.

Hat vielleicht jemand ein passenden Ratschlag für mein Problem?

bei Antwort benachrichtigen
gelöscht_323936 hddiesel „Hallo, siehe den Hinweis von Anne: Diese Funktion gibt es immer noch, um dem Fehler auf die Spur zukommen und dabei kannst ...“
Optionen

Als Hinweis - siehe die Nachricht von @mumpel1: in der Schleife muss(te) der AcrobatReader jedesmal geschlossen werden, damit der nächste Ausdruck funktioniert. 

Ich kenne das Problem von einer Aufgabe vor längerer Zeit auch.
Und weil das sonst so lange gedauert hätte, habe ich extra für solche Ausdrucke die Anzahl der gewünschten Ausdrucke im Drucker eingestellt - vom Rechner aus- , dann wurde der Bericht entsprechend oft gedruckt.

Aber wenn die Anzahl variabel aus dem aktuellen Job eingelesen wird, müsste eben das Programm AcrobatReader nach jedem Aufruf geschlossen werden.

bei Antwort benachrichtigen