Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
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
Inhaltsverzeichnis

Hilfe bei Kompilierungsfehler

Hilfe bei Kompilierungsfehler
Bernd
Hallo alle zusammen,
hab mir nachfolgenden VBA-Code zum Erstellen von PDF-Dateien in Modul eingefügt und mit einem Button verknüpft. Leider erhalte ich einen Kompilierungsfehler und kann leider nicht erkennen, woran das liegt.
Folgendes möchte ich erreichen beim Klick auf den Button, der auf dem Tab-Blatt "start" liegt. Erstelle aus Tab-Blatt "total" (eine von 20 Tab-Blättern) eine pdf-Datei mit exakt dem gleichen Dateinamen, wie die Exceldatei, z.B. mache aus "Name_Vorname_08-12-2009.xls" "Name_Vorname_08-12-2009.pdf".
Vielen Dank schon mal im Voraus
Gruß Bernd
Hier der von mir verwendete Code ...
Sub PrintToPDF_Early()
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
'PDF-Dateinamen festlegen
sPDFName = "Dateiname.pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Prüfung ob das Arbeitsblatt leer ist; wenn ja dann Programm-Ende
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub
Set pdfjob = New PDFCreator.clsPDFCreator
With pdfjob
'Sicherstellen, dass der PDFCreator startet
If .cStart("/NoProcessingAtStartup") = False Then
MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
Exit Sub
End If
'Standardwerte setzen
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0  ' 0 = PDF
.cClearCache
End With
'PDF drucken
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
'Warten, bis der Druckjob zum Drucken gekommen ist
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False
'Warten, bis PDFCreator gedruckt hat; dann Freigabe des Objekts
Do Until pdfjob.cCountOfPrintjobs = 0
DoEvents
Loop
pdfjob.cClose
Set pdfjob = Nothing
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Hilfe bei Kompilierungsfehler
08.12.2009 12:47:04
ede
Hallo,
den Dateinamen kannst Du so anpassen:
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"
und das richtige Sheet triffst Du damit:
Sheets("total").PrintOut copies:=1, ActivePrinter:="PDFCreator"
desweiteren machst du eine Prüung, welche du dann auch auf das gewünschte Sheet anpassen musst bzw. auskommentiren kannst.
gruss
Korrektur
08.12.2009 12:48:20
ede
falsche Zwischenablage eingefügt:
den Dateinamen kannst Du so anpassen:
sPDFName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 3) & "pdf"
AW: Korrektur
08.12.2009 13:05:31
Bernd
Hallo Ede,
danke für deine schnelle Hilfe. Beide Codes habe ich angepasst. Allerdings ensteht der Kompilierungsfehler bereits in der ersten Zeile des Codes ...
Dim pdfjob As PDFCreator.clsPDFCreator
... mir der Fehlermeldung:" Benutzerdefinierter Typ nicht gefunden"
Weiß leider nicht weiter, da ich keine große Ahnung von VBA habe.
Gruß Bernd
Anzeige
AW: Ergänzug
08.12.2009 13:22:31
Bernd
Hallo Ede,
hatte vorher noch vergessen zu erwähnen, dass der Druckertreiber "PDFCreator" installiert ist.
Gruß Bernd
AW: Korrektur
08.12.2009 13:28:12
ede
Hallo noch mal,
dann hast du keinen PDFCreator installiert!!!
Gruss
AW: Korrektur
08.12.2009 13:29:20
ede
oder keinen Verweis gesetzt.
gruss
AW: Korrektur
08.12.2009 13:46:25
Bernd
Hallo Ede,
kann leider nicht verstehen, was du mit "keinen verweis gesetzt" meinst?
Also mein Standarddrucker im System ist ein Canon, ausserdem ist noch der Fritzfax-Druckertreiber, als auch der PDFCreator bei mir im System installiert.
Gruß Bernd
AW: Korrektur
08.12.2009 14:26:51
ede
Hallo,
leider kann ich Dir dann auc nicht weiterhelfen, schau mal im vba-Editor unte Extras-Verweise ob Du da noch was mit PDF* findest.
gruss
Anzeige
AW: Korrektur
08.12.2009 14:37:36
Bernd
Hallo Ede,
danke trotzdem für deine Hilfe.
Gruß Bernd
AW: Hilfe bei Kompilierungsfehler
08.12.2009 22:11:29
firmus
Hallo Bernd,
.
Dim pdfjob As PDFCreator. clsPDFCreator
.
PDFCreator ist eine objectclass. Darin werden alle Variablen und Fixwerte vordefiniert - bei PDFcreator installation. (Solltest Du xls erst danach installiert haben, könnte das der Fehler sein.)
.
Um diese Variblen und Fixwerte ansprechen zu können, müssen a) die Class und b) die Variablen und Fixwerte vorhanden sein. Prüfen kannst Du das über den Class-Browser (Aufruf: F2 im VBA-editor)
z.B. solltest Du dort auch "cPrinterStop" finden.
.
Falls diese im Class-Browser nicht zu sehen/finden sind, ist diese Class nicht eingebunden.
Im VBA-Editor über Extras, Verweise haben alle eingebundenen Verweise ein Häkchen.
Suche in dem Fenster den entsprechenden Verweis zu PDFCreator (muss nicht den identischen Namen
haben) und binde durch Setzen des Häkchens diese Class ein.
.
Sollte dieser Verweis nicht zu finden sein, dann gehe unter Extras, Verweise auf "Durchsuchen".
Hier solltest Du in Installationspfad von PDFcreator nachsuchen.
.
Sollte das alles nicht helfen - weiß ich nicht weiter und würde mit "PDFCreator.clsPDFCreator" einfach mal googlen.
.
Viel Spaß und viel Erfolg,
Firmus
Anzeige
AW: Hilfe bei Kompilierungsfehler
09.12.2009 12:00:12
Bernd
Hallo Firmus,
danke für deine Rat.
Werde deinen Vorschlag anzuwenden und hoffe, dass ich damit das Problem lösen kann.
Melde mich, sobald ein Ergebnis da ist.
Gruß Bernd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige