Macro Problem
#1
Hallo, ich habe mir ein Macro für den PDF-export aufgezeichnet und es so modifiziert, dass das Datum an den Dateinamen angehängt wird. Ich kenne mich nicht wirklich mit der Programmierung aus, probiere halt immer rum irgendwann gehts meistens dann doch wie ich will.
Allerdings mit dem Speicherpfad habe ich meine Probleme. Die PDF soll immer in den jeweiligen (aktiven) Ordner gespeichert werden, da brauche ich wahrscheinlich eine Variable, bis jetzt gehts immer nach Laufwerk g:

Hier mal der Code:


Sub PDFexp()

Dim strD$ ' Datum
strD = CStr(Format(VBA.Date, "dd-mm-yyyy"))
MsgBox strD


ActiveDocument.PublishToPDF "g:\" & ActiveDocument & strD & ".pdf" ' Name

' Recorded 2012/07/13
With ActiveDocument.PDFSettings
.PublishRange = 0 ' CdrPDFVBA.pdfWholeDocument
.PageRange = "1"
.Author = ""
.Subject = ""
.Keywords = ""
.BitmapCompression = 2 ' CdrPDFVBA.pdfJPEG
.JPEGQualityFactor = 60
.TextAsCurves = False
.EmbedFonts = True
.EmbedBaseFonts = False
.TrueTypeToType1 = False
.SubsetFonts = True
.SubsetPct = 80
.CompressText = True
.Encoding = 1 ' CdrPDFVBA.pdfBinary
.DownsampleColor = True
.DownsampleGray = True
.DownsampleMono = True
.ColorResolution = 200
.MonoResolution = 200
.GrayResolution = 200
.Hyperlinks = False
.Bookmarks = False
.Thumbnails = False
.Startup = 0 ' CdrPDFVBA.pdfPageOnly
.ComplexFillsAsBitmaps = True
.Overprints = False
.Halftones = False
.MaintainOPILinks = False
.FountainSteps = 256
.EPSAs = 1 ' CdrPDFVBA.pdfPreview
.pdfVersion = 6 ' CdrPDFVBA.pdfVersion15
.IncludeBleed = False
.Bleed = 31750
.Linearize = False
.CropMarks = False
.RegistrationMarks = False
.DensitometerScales = False
.FileInformation = False
.ColorMode = 0 ' CdrPDFVBA.pdfRGB
.ColorProfile = 1 ' CdrPDFVBA.pdfSeparationProfile
.EmbedFilename = ""
.EmbedFile = False
.JP2QualityFactor = 60
.TextExportMode = 0 ' CdrPDFVBA.pdfTextAsUnicode
.PrintPermissions = 1 ' CdrPDFVBA.pdfPrintPermissionLowResolution
.EditPermissions = 0 ' CdrPDFVBA.pdfEditPermissionNone
.ContentCopyingAllowed = False
.OpenPassword = ""
.PermissionPassword = "Test"
.EncryptType = 1 ' CdrPDFVBA.pdfEncryptTypeStandard
.OutputSpotColorsAs = 0 ' CdrPDFVBA.pdfSpotAsSpot
.OverprintBlackLimit = 95
End With

End Sub
Zitieren
#2
...
ActiveDocument.FullFilePath
oder
ActiveDocument.FilePath

müsste eigentlich was bringen. Zumindest gibts dazu bei Tante Google paar Treffer.

Cu Helmut
Zitieren
#3
Hallo Helmut, da hatte ich mir auch schon gedacht aber ich bekomme das so einfach nicht in den Code. Ich habe ja auch nicht wirklich Ahnung davon, da werde ich halt doch meine paar englische Wörter rauskramen und mich beim Corelforum anmelden müssen.:-;
Zitieren
#4
Hallo Norre,

Wo bei Dir das "g:\" steht muß: ActiveDocument.FilePath hin.
Also so:

ActiveDocument.PublishToPDF ActiveDocument.FilePath & ActiveDocument & strD & ".pdf" ' Name

so hat es bei mir funktioniert (X4)
Zitieren
#5
koter schrieb:Hallo Norre,

Wo bei Dir das "g:\" steht muß: ActiveDocument.FilePath hin.
Also so:

ActiveDocument.PublishToPDF ActiveDocument.FilePath & ActiveDocument & strD & ".pdf" ' Name

so hat es bei mir funktioniert (X4)

Jau, das wars ......super. Ich habe die Gänsefüßchen bei ActiveDokument immer dabei gehabt, deshalb kam also der Laufzeitfehler. Auf jedenfall funktioniert das Ganze jetzt.
Danke Schöööön!!!!!!!
xmasdanke
Zitieren
#6
koter schrieb:Hallo Norre,

Wo bei Dir das "g:\" steht muß: ActiveDocument.FilePath hin.
Also so:

ActiveDocument.PublishToPDF ActiveDocument.FilePath & ActiveDocument & strD & ".pdf" ' Name

so hat es bei mir funktioniert (X4)

Hallo, klappt ja alles bestens, aber jetzt habe ich ein Problem mit dem Namen dieser kommt jetzt so :
blablabla.cdr 26-07-2012.pdf
Ist es irgendwie möglich das "cdr" aus dem Namen zu verbannen?
Zitieren
#7
...
replace oder split müssten hier weiterhelfen auf ActiveDocument
http://www.vbarchiv.net/commands/details.php?id=replace

also quasi: neuer_name = replace(ActiveDocument, ".cdr", "");

Cu Helmut
Zitieren
#8
Hallo norre,

Wie es Helmut schreibt würde es gehen.
Man sollte aber besser noch die compare–Option setzen.
Ich bekomme nämlich manchmal Corel-Dateien bei denen die Dateierweiterung in Großbuchstaben steht.
(Das war vielleicht bei einer früheren Version mal Standard).

Die Replace Anweisung müsste dann so lauten:
Neuer_Name = Replace(Alter_Name, ".cdr", "", , , vbTextCompare)

Man kann die Erweiterung aber auch mit der Left-Funktion abschneiden.
Neuer_Name = Left(Alter_Name, Len(Alter_Name) - 4)

Wenn man das auch noch in die Befehlszeile einbauen wollte würde sie ein bisschen lang und unübersichtlich, Ich würde deshalb eine Variable verwenden und einen Dreizeiler daraus machen.

Also so:

Dim strD$ ' Datum
Dim PDFName As String
strD = CStr(Format(VBA.Date, "dd-mm-yyyy"))
MsgBox strD

'Der Dreizeiler:
PDFName = ActiveDocument.FullFileName 'der volle Dateiname mit Pfad
PDFName = Left(PDFName, Len(PDFName) - 4) 'die letzten 4 Zeichen abschneiden
ActiveDocument.PublishToPDF PDFName & strD & ".pdf" 'Als PDF Freigeben

Noch ein kleiner Nachtrag:
Bei Deinem Makro steht die With-Anweisung nach der PublishToPDF-Anweisung.
Das Makro erstellt also erst die PDF-Datei und ändert dann die PDF-Einstellungen.
Du müsstest also die PublishToPDF-Anweisung hinter die With-Anweisung setzen.
Falls Du aber immer mit den gleichen Einstellungen arbeitest kannst Du die With-Anweisung auch ganz weglassen.

Gruß
Koter
Zitieren
#9
Hallo, klasse :daumen: das funktioniert super, ich habe ja nicht wirklich Ahnung von der Materie bzw von den Befehlen, deshalb kam ich auch z.B mit der Befehlszeile nicht so klar (Neuer_Name = Replace(Alter_Name, ".cdr", "", , , vbTextCompare)
Aber mit deinem "Dreizeiler" (in Realtext) und die "PublishToPDF-Anweisung" nach hinten verschoben läuft die Sache einbandfrei.

Ich versuche mich schon ein bisserl reinzulesen, allerdings ist mein englisch nicht so der Hit und in meinem Alter bin ich schon froh, dass ich noch weiß wo ich meine Brille hingelegt habe :-)

Noch ein schönes Wochenende und nochmal xmasdanke
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Corel Draw Problem - Funktion Kontur Boshi 11 4.693 10.01.2023, 13:37
Letzter Beitrag: Boerni
  Corel Tabellen pdf Problem gagman 2 906 08.11.2022, 20:56
Letzter Beitrag: gagman
  Problem Hicki 4 1.045 19.01.2021, 23:00
Letzter Beitrag: norre
  Problem mit dem Druck Layout Ami-Joe 1 1.166 14.05.2020, 22:11
Letzter Beitrag: koter
  Problem mit CorelDraw Home + Student 2019 Kalle-24 2 3.636 10.03.2020, 16:50
Letzter Beitrag: Kalle-24
  pdf-Problem - Foto wird körnig adelmann-grafen 14 2.734 19.04.2018, 11:16
Letzter Beitrag: adelmann-grafen
  Problem bei Lizenzierung landbastler 0 1.733 05.10.2017, 18:36
Letzter Beitrag: landbastler
  Problem: Umriss in Objekt bei Elypsen Uckerschwan 18 4.625 09.09.2017, 21:07
Letzter Beitrag: koter
  PDF erzeugen aus corel x7, Problem mit Transparenzen. anke1168 1 2.154 18.05.2017, 16:56
Letzter Beitrag: mvm
  Export " Problem" mit X7 Hartmut 6 2.441 28.01.2017, 12:38
Letzter Beitrag: Hartmut