Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
128to132
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
128to132
128to132
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

excel in pdf konvertieren

excel in pdf konvertieren
13.06.2002 14:48:40
Wolfgang
Hallo
Verwende den Adobe Distiller.
Hab schon das Archiv durchgestöbert.
Problem ist das ich den Dateinamen und den Speicherpfad nicht manuell wählen will sondern durch das makro (sendkeys) vorgebe.
Und das funktioniert nicht.
Ich möchte in einer Schleife aus einer Exceldatei 50 pdf-files erzeugen. Und dabei nicht 50 mal auf Enter klicken und auch nicht den Speicherpfad manuell wählen.

ChDir ThisWorkbook.Path
Application.ActivePrinter = "Acrobat Distiller auf Ne00:"
Application.ScreenUpdating = False
For i = 1 To 50
Range("K2").Select
ActiveCell.FormulaR1C1 = i
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:="=Druckbereich1, Druckbereich2...Druckbereich9"
ActivePrinter:="Acrobat Distiller", Collate:=True
strFile = Worksheets("AuswNeu").Range("I1").Value & " " & Worksheets("AuswNeu").Range("H1").Value & ".pdf"
SendKeys strFile
SendKeys "{Enter}", true
Selection.PrintOut
next

Danke für jeden Tip
Wolfgang

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Halbe Hilfe
13.06.2002 15:05:05
Alan Hathway
Zum genauen Problem kjann ich nichts sagen, weil ich Distiller nicht habe.

Aber ich nutze PDFFactory und dieses müsste ziemlich ähnlich laufen. Ich nutze auch sendkeys. Wobei
1. Ich wait's einbauen muss, ansonsten verheddert er sich
2. ich vieles mit '%' (bedeutet 'Alt') mit Sendkeys arbeiten muss damit die sache funktioniert.

Alan Hathway

Re: excel in pdf konvertieren
13.06.2002 15:26:34
Egon
Ich verwende den AMYUNI PDF Converter.
http://www.amyuni.com/ger/products/pdf_converter/features.html

Einfach mit VBA zu programmieren und relativ preiswert.
(150€)

Es gibt eine Developer-Version, die man uneingeschräkt weitergeben kann und die kein Install benötigt.
(aber: teuer - 1500€)

Der Hersteller sitzt in Paris.

Egon

Anzeige
Re: Halbe Hilfe
13.06.2002 15:34:40
wolfgang
Danke
Acrobat Distiller ist ein addin und zwar pdfmaker.xla

Wäre Dir sehr dankbar für nähere Infos wie Du an die Sache rangehst.
Vielen Dank
wolfgang

Re: Halbe Hilfe
13.06.2002 15:41:25
Alan Hathway
Nicht schön, aber effektiv

Ich brauche nur etwas aus den 3., den 8. und ab den 11. Blatt

Ich lösche die Datei vorab, falls sie schon existiert.

(Die Anwendung ist eine Sport Veranstaltung - ich veröffentliche die Ergebnisse im Internet am Ende des Spieltages)


Sub PDFExport()
'
' PDFExport Makro
' Makro am 25.02.2002 von Alan Hathway aufgezeichnet
'
'
Dim altdru As String
Dim counter As Integer
'
'
altdru = Application.ActivePrinter
Application.ActivePrinter = "FinePrint pdfFactory auf FPP1:"
'
Application.Calculate
For counter = 1 To Sheets.Count
If counter = 3 Or counter = 8 Or counter >= 11 Then
Worksheets(counter).Activate
On Error Resume Next
Kill "C:\Alan\DSM2\DSM2I" & Left(Worksheets(counter).Name, 3) & ".pdf"
SendKeys "%dd{Enter}", True
Application.Wait Now + TimeValue("00:00:10")
SendKeys "%s" & "C:\Alan\DSM2\DSM2I" & _
Left(Worksheets(counter).Name, 3) & ".pdf{Enter}", True
Application.Wait Now + TimeValue("00:00:08")
SendKeys "{Esc}", True
Application.Wait Now + TimeValue("00:00:04")
End If
Next
Worksheets("Setzliste").Activate

Application.ActivePrinter = altdru

'
End Sub

Anzeige
Re: excel in pdf konvertieren
13.06.2002 16:06:31
Heiko
Hallo,

versuchs mal damit:

strFile = Worksheets("AuswNeu").Range("I1").Value & " " & Worksheets("AuswNeu").Range("H1").Value & ".ps" & "{Enter}"
SendKeys strFile
Selection.PrintOut PrintToFile:=True
Set pdfDist = New PdfDistiller
pdfDist.FileToPDF "ps-file", "pdf-file", ""

Dazu must du unter Extras->Verweise den Acrobat Distiller anklicken.
Der Punkt ist, dass Der Distiller keine pdf-Dateien "ausdrucken" kann sondern nur Postscript. Du erzeugst also zuerst per sendkeys und .Printout eine *.ps-Datei und mittels pdfDist.FileToPDF erzeugt dir der Distiller daraus deine gewünschte PDF-Datei. Du musst dann natürlich "ps-file" und "pdf-file" entsprechend deinen Dateinamen (incl. Pfad) abändern.

Unter der Version 10 sollte statt sendkeys auch die die Option "OutputFileName" beim -Printout funktionieren. In der Office 97 Version wirst du leider mit sendkeys arbeiten müssen.

Viel Erfolg
Heiko


Anzeige
Re: excel in pdf konvertieren
13.06.2002 16:22:54
Wolfgang
Vielen Dank
Allerdings bleibt mir die Eingabe eines Dateinamens in folgender Zeile nicht erspart.
Selection.PrintOut PrintToFile:=True
wolfgang
Re: excel in pdf konvertieren
13.06.2002 16:53:41
Heiko
normalerweise sollte der sendkeys-Befehl diesen Dateinamen dort eintragen und das "{Enter}" im Sendkeys-String wird von der Dialogbox als Klick auf "OK" interpretiert.
Ergo, solltest du nichts eintragen müssen.

Ach ja, seltsamerweise musst du bei der Einzelschrittausführung im Debugmodus tatsächlich etwas eingeben, da Excel scheinbar dann mit dem sendkeys-Befehl nichts anfangen kann.
Versuch's mal damit, einfach das Programm durchlaufen zu lassen, bzw. einen Stop erst nach dem Print-Kommando einzufügen.

Und nochwas:
Dim pdfDist As PdfDistiller
hatte ich noch vergessen

Anzeige
Re: excel in pdf konvertieren - Meine Lösung:
14.06.2002 10:40:42
Wolfgang
Vielen Dank an alle Helfer, so sieht meine Lösung nun aus:

Sub Ausdruck_in_PDF()
Dim drucker As String, strFile_ps As String, strFile_pdf As String
Dim pdfDist As PdfDistiller
Worksheets("AuswNeu").Select
drucker = Application.ActivePrinter
Application.ActivePrinter = "Acrobat Distiller auf Ne00:"
Application.DisplayStatusBar = True
Application.StatusBar = "pdf-Dateien werden erstellt...bitte warten!"
Application.ScreenUpdating = False
ChDir ThisWorkbook.Path
Set pdfDist = New PdfDistiller
For i = 1 To 58 'bis 59
Range("K2").Select
ActiveCell.FormulaR1C1 = i
ActiveWorkbook.Names.Add Name:="Print_Area", RefersToR1C1:="=Druckbereich1, Druckbereich2, Druckbereich3, Druckbereich4, Druckbereich5, Druckbereich6, Druckbereich7, Druckbereich8, Druckbereich9"
strFile_ps = ThisWorkbook.Path & "\" & Worksheets("AuswNeu").Range("I1").Value & " " & Worksheets("AuswNeu").Range("H1").Value & ".ps"
If Dir(strFile_ps) <> "" Then Kill strFile_ps
strFile_ps = ThisWorkbook.Path & "\" & Worksheets("AuswNeu").Range("I1").Value & " " & Worksheets("AuswNeu").Range("H1").Value & ".ps" & "{Enter}"
strFile_pdf = ThisWorkbook.Path & "\" & Worksheets("AuswNeu").Range("I1").Value & " " & Worksheets("AuswNeu").Range("H1").Value & ".pdf"
Application.StatusBar = strFile_pdf & " wird erstellt...bitte warten!"
If Dir(strFile_pdf) <> "" Then Kill strFile_pdf
SendKeys strFile_ps
ActiveWindow.SelectedSheets.PrintOut PrintToFile:=True
strFile_ps = ThisWorkbook.Path & "\" & Worksheets("AuswNeu").Range("I1").Value & " " & Worksheets("AuswNeu").Range("H1").Value & ".ps"
pdfDist.FileToPDF strFile_ps, strFile_pdf, ""
Next
Application.StatusBar = False
Application.ScreenUpdating = True
Application.ActivePrinter = drucker
End Sub

wolfgang

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige