Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Printtofile

Forumthread: Printtofile

Printtofile
20.07.2004 12:55:00
Crame
Hi,
ich hatte gestern schon mal in das Forum geschrieben. Ich habe ein Problem das der Name des Dokuments und das aktuelle Datum in ein entsprechendes Verzeichnis gelegt wird. der Pfad wird über den Destiller vergeben das ist nicht das Problem aber wenn Dateien in dem Verzeichnis liegen die den selben Namen haben werden diese überschrieben und es wird nicht nachgefragt ob diese Überschrieben werden sollen obwohl es im Druckertreiber so hinterlegt ist. Also muss ich den Pfad mit Uhrzeit angeben aber das funktioniert nicht. Als trüffel wäre es auch sehr gut wenn das Verzeichnis variabel wäre also z.B. Monatsweise unter einem Laufwerksbuchstaben. Kann mir vielleicht jemand helfen... BITTE BITTE HILFE HILFE

Sub PDF()
Dim name As String
name = "Name des Dokuments" & Format(Now, "dd.mm.yyyy") & ".pdf"
EingangsDrucker = ActivePrinter 'Umgebung festhalten
Application.ActivePrinter = "Acrobat Distiller auf Ne06:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Acrobat Distiller auf Ne06:", PrintToFile:=True, Collate:=True, PrToFileName:=name
ActivePrinter = EingangsDrucker 'Ursprüngliche Umgebung wieder herstellen
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Printtofile
21.07.2004 13:41:22
Crame
Kann mir wirklich keiner Hinweise geben...
AW: Printtofile
23.07.2004 22:43:29
Björn
Hallo Crame?
Wenn Du als Level VBA gut angibst, verstehe ich nicht warum du an der Uhrzeit scheiterst ;-).
Versuch's mal hiermit:

Sub PDF()
Dim name As String
name = "Name des Dokuments_" & Format(Now, "yyyy-mm-dd-hh-nn-ss") & ".pdf"
EingangsDrucker = ActivePrinter 'Umgebung festhalten
Application.ActivePrinter = "Acrobat Distiller auf Ne06:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Acrobat Distiller auf Ne06:", PrintToFile:=True, Collate:=True, PrToFileName:=name
ActivePrinter = EingangsDrucker 'Ursprüngliche Umgebung wieder herstellen
End Sub

Was den zweiten Teil Deiner Frage betrifft, so könnte es nicht schaden, wenn Du Dir das folgende Zitat aus Deiner Problembeschreibung ansiehst ;-)
"der Pfad wird über den Destiller vergeben"
Wenn das denn stimmt, wie also den Pfad ändern?
Gruß
Björn
Anzeige
;
Anzeige

Infobox / Tutorial

PDF-Dateien mit Excel erstellen und speichern


Schritt-für-Schritt-Anleitung

Um eine PDF-Datei aus Excel zu erstellen und diese in einem bestimmten Verzeichnis zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass der Dateiname das aktuelle Datum und die Uhrzeit enthält, um Überschreibungen zu vermeiden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub PDF()
       Dim name As String
       name = "Name des Dokuments_" & Format(Now, "yyyy-mm-dd-hh-nn-ss") & ".pdf"
       EingangsDrucker = ActivePrinter 'Umgebung festhalten
       Application.ActivePrinter = "Acrobat Distiller auf Ne06:"
       ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
       "Acrobat Distiller auf Ne06:", PrintToFile:=True, Collate:=True, PrToFileName:=name
       ActivePrinter = EingangsDrucker 'Ursprüngliche Umgebung wieder herstellen
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die PDF zu erstellen und zu speichern.


Häufige Fehler und Lösungen

  • Problem: Die PDF wird nicht gespeichert.

    • Lösung: Überprüfe, ob der Pfad korrekt angegeben ist und ob der Druckertreiber "Acrobat Distiller" richtig installiert ist.
  • Problem: Dateien werden überschrieben.

    • Lösung: Stelle sicher, dass der Dateiname die aktuelle Uhrzeit enthält, indem du Format(Now, "yyyy-mm-dd-hh-nn-ss") verwendest. So wird jede PDF mit einem einzigartigen Namen gespeichert.

Alternative Methoden

Es gibt verschiedene Methoden, um PDFs aus Excel zu erstellen. Hier sind zwei Alternativen:

  1. Direkter Export:

    • Du kannst die Funktion „Speichern unter“ nutzen und das Dateiformat auf PDF setzen. Dies ist jedoch weniger flexibel, wenn es um die Automatisierung geht.
  2. Drittanbieter-Software:

    • Verwende Software wie PDFCreator oder CutePDF, die ähnliche Funktionen anbieten, um Excel-Daten direkt in PDF-Dateien zu konvertieren.

Praktische Beispiele

Angenommen, du hast eine Excel-Datei mit Monatsberichten, die du regelmäßig als PDF speichern möchtest. Verwende den oben genannten VBA-Code und passe den name-String an, um den Berichtsnamen und das Datum einzufügen:

name = "Monatsbericht_" & Format(Now, "yyyy-mm") & ".pdf"

So wird jede PDF mit dem Monat und Jahr benannt, was die Organisation erleichtert.


Tipps für Profis

  • Nutze die activewindow.selectedsheets.printout-Methode, um gezielt nur die aktiven Blätter zu drucken.
  • Überlege, wie du den Speicherort für die PDFs dynamisch anpassen kannst, beispielsweise durch die Verwendung von Umgebungsvariablen oder Benutzereingaben.
  • Implementiere Fehlerbehandlungen im VBA-Code, um unerwartete Probleme beim Drucken zu vermeiden.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Speicherort für die PDF-Datei ändern?
Antwort: Du kannst den PrToFileName-Parameter im VBA-Code anpassen, um den vollständigen Pfad zur Datei anzugeben, z. B.:

PrToFileName:="C:\MeinVerzeichnis\" & name

2. Frage
Kann ich mehrere Blätter auf einmal drucken?
Antwort: Ja, indem du ActiveWindow.SelectedSheets.PrintOut verwendest, kannst du alle ausgewählten Blätter auf einmal drucken.

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