Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  mehrere pdfs drucken

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  mehrere pdfs drucken (1123 mal gelesen)
Enza
Mitglied



Sehen Sie sich das Profil von Enza an!   Senden Sie eine Private Message an Enza  Schreiben Sie einen Gästebucheintrag für Enza

Beiträge: 27
Registriert: 04.06.2007

Excel 2003

erstellt am: 24. Jul. 2009 12:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

Ich möchte aus Excel eine Liste von pdfs drucken lassen. In S_print wird der Pfadname gespeichert.
Jetzt treten zwei Probleme auf: Wenn ich nicht nach jedem Druckaufruf 20 Sekunden warte, werden einige Dateien gar nicht ausgedruckt. Kann man das Programm trotzdem irgendwie beschleunigen?
Und bei einigen Dateien wird nicht die komplette Seite ausgedruckt, sondern nur ein Ausschnitt. Wie kann ich der Druckfunktion sagen, dass der gesamte Seiteninhalt gedruckt werden soll?

Code:

Option Explicit

Private Declare Function GetShortPathName Lib "kernel32.dll" Alias "GetShortPathNameA" ( _
    ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, _
    ByVal cchBuffer As Long) As Long
   
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

Private Const MAX_PATH = 260&
Private Const SW_HIDE = 0&

Sub Drucken()

...

If S_print <> "File not found" Then
    'Datei Drucken
    strShortPath = Space(MAX_PATH)
    GetShortPathName S_print, strShortPath, MAX_PATH
    ShellExecute GetActiveWindow, "print", strShortPath, "", "", SW_HIDE
    Application.Wait Now + TimeSerial(0, 0, 20)
End If

...

End Sub


Vielen Dank für eure Hilfe!

Insa

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HTBU
Mitglied
Konstrukteur


Sehen Sie sich das Profil von HTBU an!   Senden Sie eine Private Message an HTBU  Schreiben Sie einen Gästebucheintrag für HTBU

Beiträge: 19
Registriert: 05.03.2008

Inventor 2008

erstellt am: 24. Jul. 2009 13:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Enza 10 Unities + Antwort hilfreich

Hallo

Den Druckbereich kannst du wie folgt definieren:


    'Druckbereich festlegen:
    Range("A1:H44").Select
    ActiveSheet.PageSetup.PrintArea = "$A$1:$H$44"
   

    'Druckbereich aufheben:
    Range("A1").Select
    ActiveSheet.PageSetup.PrintArea = ""

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Enza
Mitglied



Sehen Sie sich das Profil von Enza an!   Senden Sie eine Private Message an Enza  Schreiben Sie einen Gästebucheintrag für Enza

Beiträge: 27
Registriert: 04.06.2007

Excel 2003

erstellt am: 24. Jul. 2009 13:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo HTBU!

Vielen Dank für deine Antwort.
Ich möchte aber nicht den Druckbereich des Excelsheets festlegen, sondern den Druckbereich des zu druckenden pdfs steuern.

Viele Grüsse,

Insa

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Thomas Harmening
Moderator
Arbeiter ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 24. Jul. 2009 19:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Enza 10 Unities + Antwort hilfreich

hmmm,

... wie findet die Auswahl der Pdfs statt?
da ich mit deinem Druckschnippsel nichts anfangen kann eventuell hilft untenstehender Code...

Code:
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal Fensterzugriffsnummer As Long, _
ByVal lpOperation_wie_Open_oder_Print As String, _
ByVal lpDateiname_incl_Pfad As String, _
ByVal lpZusätzliche_Startparameter As String, _
ByVal lpArbeitsverzeichnis As String, _
ByVal nGewünschte_Fenstergröße_der_Anwendung As Long) _
As Long

Private Const SW_HIDE = 0
Private Const SW_MAX = 10
Private Const SW_MAXIMIZE = 3
Private Const SW_MINIMIZE = 6
Private Const SW_NORMAL = 1
Private Const SW_SHOW = 5
Private Const SW_SHOWDEFAULT = 10
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWNOACTIVATE = 4

Sub Mehrere_Drucken()
ChDrive (C): ChDir "C:\PDF-DATEN"                'Pfadvoreinstellung
    NameZiel = Application.GetOpenFilename("ADOBE (*.PDF),*.pdf,Alle Dateien (*.*),*.*", , "PDF-auswahl !", MultiSelect:=True)
    If TypeName(NameZiel) = "Boolean" Then
        Beep
        MsgBox "Sie müssen min. eine Datei auswählen!"
        Exit Sub
    End If
    Call Sort(NameZiel) 'Die ausgewählten Dateien werden alpha-numerisch sortiert
End Sub

Sub Sort(Nums)  Rem Sortiert das Array *.nc, *.mpf
    For I = LBound(Nums) To UBound(Nums)
    For J = (I + 1) To UBound(Nums)
    If Nums(I) > Nums(J) Then 'Wenn eine Zahl größer als die Andere ist, werden sie getauscht'
        tmp = Nums(I)
        Nums(I) = Nums(J)
        Nums(J) = tmp
    End If
    Next J
    Next I
    For Nr = LBound(Nums) To UBound(Nums)
        pdfInBearbeitung = (Nums(Nr))
        Pdf (pdfInBearbeitung)
    Next Nr
End Sub

Sub Pdf(pdfInBearbeitung)
'ShellExecute öffnet oder druckt mit dem Programm, das in der Registy zu
'dieser Dateinamenserweiterung eingetragenen wurde.
ShellExecute 0&, "Print", pdfInBearbeitung, _
vbNullString, vbNullString, SW_SHOWMINNOACTIVE
End Sub

Sub Drucken()
ShellExecute 0&, "Print", "c:\Eigene Dateien\hugo.pdf", _
vbNullString, vbNullString, SW_SHOWMINNOACTIVE
End Sub

'Sub Öffnen()
'ShellExecute 0&, "Open", "c:\Eigene Dateien\hugo.pdf", _
' vbNullString, vbNullString, SW_SHOWNORMAL
'End Sub



------------------
   
Am Anfang war kein Licht - und Vater blickte Kalt
literaturcafe /// ¡darkerradio! // und den passenden Play für Winamp

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Enza
Mitglied



Sehen Sie sich das Profil von Enza an!   Senden Sie eine Private Message an Enza  Schreiben Sie einen Gästebucheintrag für Enza

Beiträge: 27
Registriert: 04.06.2007

Excel 2003

erstellt am: 31. Jul. 2009 09:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Thomas!

Vielen Dank für deine Antwort!
Kannst du mir noch sagen, welche Werte man als in der Variablen lpZusätzliche_Startparameter übergeben kann?
Ich stelle mir vor, dass sich beim ersten zu druckenden pdf das Fenster "Seite einrichten" öffnet und dass diese Einstellungen für alle anderen pdf übernommen werden. Ist das möglich?

Viele Grüsse,

Insa

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz