Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PDF PrintOut-Problem

Forumthread: PDF PrintOut-Problem

PDF PrintOut-Problem
24.05.2003 12:40:43
Tom
Hi

Ich habe nachfolgende Prozedur geschrieben, welche ein Excel-Dokument als PDF-Datei ausdruckt. Diese Prozedur funktioniert wunderbar nur mit dem Problem, dass die PDF-Datei nicht ins selbe Verzeichnis geschrieben wird wie die Excel Datei (Die Excel Datei befindet sich im Verzeichnis H:\Daten, doch die PDF-Datei landet im Verzeichnis H:\). Ich wäre sehr um einen Tipp dankbar.

Tom


Public Sub Print_to_PDF(ws As Worksheet)

Dim objTmpPDF As Object
Dim strFileName As String

'Dateiname bestimmen
strFileName = Left(ws.Parent.FullName, Len(ws.Parent.FullName) - 4)

'Objekt für Dummy-File
Set objTmpPDF = CreateObject("Scripting.FileSystemObject")

'Dokument ausdrucken
ws.PrintOut _
Copies:=1, _
ActivePrinter:="Acrobat PDFWriter auf LPT1:", _
PrintToFile:=True, _
PrToFilename:=strFileName

'Dummy löschen
objTmpPDF.deletefile strFileName

End Sub

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: PDF PrintOut-Problem
25.05.2003 11:05:16
Ramses

Hallo,

ohne es getestet zu haben, sollte folgendes ausreichend sein:

Gruss Rainer

Re: PDF PrintOut-Problem
25.05.2003 13:09:36
Tom

Ramses,

das habe ich alles schon xmal ausprobiert - ohne Erfolg. Es scheint, dass die PDF immer ins CurDir-Verzeichnis geschrieben wird, doch ich bin nicht sicher.

Tom

Re: PDF PrintOut-Problem
25.05.2003 14:11:00
Ramses

Hallo,

probier mal das:


Der Code ist getestet und druckt das PDF-File in das gleiche Verzeichnis wie deine Mappe.

Gruss Rainer


Anzeige
Re: PDF PrintOut-Problem
25.05.2003 14:37:23
Tom

bringt alles nichts. Der PDF-Writer erzeugt automatisch die PDF-Endung und schreibt ein Dummy Objekt ins korrekte Verzeichnis, jedoch die PDF-Datei ins CurDir Verzeichnis. Ich habe sicherheitshalber ein FileCopy-Befehl eingefügt, doch überzeugen tut mich das nicht. Nachfolgend der neue Code:

Public Sub Print_to_PDF(ws As Worksheet)

Dim objTmpPDF As Object
Dim strFileName As String
Dim aFolders(3) As String
Dim intCounter As Integer

aFolders(1) = ws.Parent.Path
aFolders(2) = Application.DefaultFilePath
aFolders(3) = CurDir

'Dateiname bestimmen
strFileName = Left(ws.Parent.Name, Len(ws.Parent.Name) - 4)

'sicherheitshalber alte Dateien löschen
For intCounter = 1 To 3
If Dir(aFolders(intCounter) & "\" & strFileName & ".pdf") <> "" Then
Kill aFolders(intCounter) & "\" & strFileName & ".pdf"
End If
Next intCounter

'Objekt für Dummy-File
Set objTmpPDF = CreateObject("Scripting.FileSystemObject")

'Dokument ausdrucken (wichtig ohne PDF-Endung!)
ws.PrintOut _
ActivePrinter:="Acrobat PDFWriter auf LPT1:", _
PrintToFile:=True, _
PrToFilename:=ws.Parent.Path & "\" & strFileName

'Dummy-Objekt löschen
objTmpPDF.deletefile ws.Parent.Path & "\" & strFileName

'falls Datei ins falsche Verzeichnis kopiert wurde, korrigieren
For intCounter = 2 To 3
If aFolders(intCounter) <> ws.Parent.Path Then
If Dir(aFolders(intCounter) & "\" & strFileName & ".pdf") <> "" Then
On Error Resume Next
FileCopy aFolders(intCounter) & "\" & strFileName & ".pdf", _
ws.Parent.Path & "\" & strFileName & ".pdf"

If Err.Number = 0 Then
Kill aFolders(intCounter) & "\" & strFileName & ".pdf"
End If
On Error GoTo 0
End If
End If
Next intCounter

End Sub

Anzeige
Re: PDF PrintOut-Problem
25.05.2003 14:41:40
Ramses

Hallo,

der obige Code ist getestet und tut genau das was du willst.

Wie übergibst du die Variable "ws" an das Makro?

Gruss Rainer

Re: PDF PrintOut-Problem
25.05.2003 14:56:51
Tom

Call Print_to_PDF(Workbooks("blabla").Worksheets("blabla"))

oder

Call Print_to_PDF(ActiveSheet)

Re: PDF PrintOut-Problem
25.05.2003 15:17:01
Ramses

Hallo Tom,

ist die Datei gespeichert ?

Gruss Rainer

Anzeige
Re: PDF PrintOut-Problem
25.05.2003 15:37:34
Tom

ja

Es sind die kleinen Dinge des Lebens :-))
25.05.2003 16:03:02
Ramses

Hallo Tom,

es darf keine Endung ".pdf" in die Variable vergeben werden :-))

Der Code ist getestet und funktioniert auch beim wiederholten Male.
Eine existierende Datei wird ohne Rückfrage überschrieben !!!


Gruss Rainer

Ja, Ja die kleinen Dinge ....
25.05.2003 17:02:09
Ramses

Hallo Tom,

es gibt noch ein kleines Problem.
AA erstellt offensichtlich immer eine temporäre Datei und löscht diese, deshalb das Problem mit der endung "pdf".
In der vorherigen Variante habe ich festgestellt, dass eine Datei ohne Endung erstellt wird, die dann bestehen bleibt.

Hier der Workaround der definitv funktioniert :-))

Gruss Rainer

Anzeige
Re: Ja, Ja die kleinen Dinge ....
25.05.2003 19:02:14
Tom

Danke für das Beispiel, doch es funktioniert nicht. Die PDF-Datei landet im CurDir-Verzeichnis.

Dann mit Gewalt :-))
25.05.2003 19:38:44
Ramses

Hallo,

Gruss Rainer

Re: Dann mit Gewalt :-))
26.05.2003 09:24:24
Tom

Danke für dein Beispiel. Soweit bin ich auch gekommen, doch die Knacknuss ist noch nicht gelöst. Effektiv geht es um eine Access-Applikation, welche folgende Schritte ausführen soll:

1. Excel-Tabelle erstellen und mit Daten füllen
2. PDF-Dokument erstellen
3. PDF-Datei ins Internet stellen

Alle Teilschritte funktionieren, doch wie kontrolliere ich die CurDir-Eigenschaft von Access aus?!?

Gruss Tom

Anzeige
Dann viel Spass...
26.05.2003 13:15:34
Ramses

Hallo

Wenn du genauso weit gekommen bist, frage ich mich warum du dann sooft nachgefragt hast.
Von Acces aus geht es genauso,... allerdings klinke ich mich jetzt aus.

Gruss Rainer


;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige