Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA: Datei temporär für Druck umbenennen
#1
Hallo zusammen,

ich habe in einer Datei ein Drop-Down-Feld, welches als Filter für mehrere Grafiken dient.
Per VBA hat der Nutzer die Möglichkeit direkt einen Druck als PDF mit einem bestimmten Wert zu starten (Versand der PDF Datei erfolgt per Mail an das jeweilige Nutzerkonto)

 Range("A6").Select
 ActiveCell.FormulaR1C1 = "Wert"

  Dim sDruckerAktuell As String
  sDruckerAktuell = Application.ActivePrinter
  Application.ActivePrinter = "\\W1SRV03\PDF Standard auf Ne12:"
  Sheets(Array("Auswertung")).PrintOut Copies:=1, Collate:=True
  Application.ActivePrinter = sDruckerAktuell


Nun habe ich den unschönen Effekt, dass die Datei immer gleich benannt ist und so in den E-Mails nicht ersichtlich ist, welcher Filter in A6 eingestellt war (als E-Mail-Betreff wird immer der aktuelle Dateiname verwendet).
Gibt es eine Möglichkeit, eine Datei temporär umzubenennen mit dem Wert aus A6?
z.B. so:

1. Merke dir den aktuellen Dateiname
2. Speichere die Datei mit dem neuen Namen --> "alter Dateiname + Ergänzung aus A6"
3. Drucke die Datei mit o. g. VBA-Code
4. Benenne die Datei wieder in den alten Namen um
5. Speichern

Danke schon mal vorab und viele Grüße 

Alpha
Antworten Top
#2
Hallo

die 2013 er Version kann doch schon den Export als pdf.


dann würde das reichen..
Code:
   Dim Dateiname As String, Pfad As String
   
   Pfad = "X:\Temp\"
   
   With Sheets("Auswertung")
       Dateiname = Pfad & ThisWorkbook.Name & "_" & .Range("A6") & ".pdf"
   
       .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dateiname, _
       Quality:=xlQualityStandard, IncludeDocProperties:=True, _
       IgnorePrintAreas:=False, OpenAfterPublish:=True
       
   End With
End Sub


LG UweD
Antworten Top
#3
Hi UweD,

danke für Deine Antwort!
Ich versuche diese mal umzusetzen. Da die Datei jedoch von mehreren Personen verwendet wird, die nicht alle Zugriff auf die gleichen Serverregionen haben, wird es wahrscheinlich schwierig einen passenden Speicherort zu finden.
Der Versand über E-Mail-PDF-Drucker wäre mir lieber. Hast du hierzu noch eine Idee?

Danke nochmal und viele Grüße
Alpha
Antworten Top
#4
Hallo nochmal


das mit der Druckerzurdnung wird dir aber auch noch Probleme bereiten.
Die PDF-Creator werden auf unterschiedlichen Rechnern auch unterschielichen Ports zugewiesen.


Egal. so evtl.??


Code:
Sub PDF_erstellen()
   Dim WB1, WB2, TB1
   Dim sDruckerAktuell As String
   Dim Datei As String
   
   Set WB1 = ThisWorkbook
   Set TB1 = WB1.Sheets("Auswertung")
   
   'Dateiname ohne Extension ...
   Datei = Left(WB1.Name, InStrRev(WB1.Name, ".") - 1) & "_" & TB1.Range("A6")
   
   'Drucker merken
sDruckerAktuell = Application.ActivePrinter
   
'Drucken
Application.ActivePrinter = "\\W1SRV03\PDF Standard auf Ne12:"
   
   'kopiert das Blatt in eine neue Datei
   TB1.Copy
   Set WB2 = ActiveWorkbook
   
   With WB2
       'Temporär speichern
       .SaveAs Filename:=Datei
       
       'Drucken in pDF
       .Sheets(1).PrintOut Copies:=1, Collate:=True
       Application.ActivePrinter = sDruckerAktuell
       
       'Name plus Pfad
       Datei = .FullName
       
       'Datei schliesen
       .Close
   
       'Löscht die temporäre Datei
       Kill Datei
   End With
   

End Sub


LG UweD
Antworten Top
#5
Hallöchen,

Zitat:Da die Datei jedoch von mehreren Personen verwendet wird, die nicht alle Zugriff auf die gleichen Serverregionen haben, wird es wahrscheinlich schwierig einen passenden Speicherort zu finden.

nutze für die Ermittlung eines Speicherortes eine Systemvariable wie z.B. %temp%

Dateiname = Environ("Temp") & "\" & ThisWorkbook.Name & "_" & .Range("A6") & ".pdf"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste