Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1940to1944
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
Nach dem Speichern der PDF - Ordner öffnen
13.08.2023 15:48:34
Hendrik
Hallo,

Ich bin absoluter Beginner mit VBA in Excel trotzdem freue ich mich das der folgende Code funktioniert und mein Ziel erfüllt... Aber ich brauche einen Rat bei folgenden Problem.

Bei dem Klick auf dem Button wird ein Druckbereich per PDF unter einen fest definierten Speicherort gespeichert und anschließend eine Email erzeugt und in Outlook geöffnet. Die gespeicherte PDF wird als Emailanhang eingefügt.


Sub pdfemail()

'PDF erstellen und diese als Anlage an E-Mail einfügen.
'Mail-Versand im Anschluss über Outlook möglich

'Bestätigung - Überprüfung der eingeben Daten
Dim iClick As Integer
iClick = MsgBox( _
prompt:="Sind alle Angaben korrekt? Wollen Sie das Formular als PDF speichern und anschließend per Email versenden?", _
Buttons:=vbYesNo)
If iClick = vbYes Then

'Fehler vermeiden
On Error GoTo ErrHandler

'PDF Erstellen - In der Zelle FormOpt!P51 den Speicherpfad angeben!
'Die Zelle FormOpt!P52 Gibt den Dateinamen aus ggf. anpassen
Dim DateiName As String
DateiName = Range("FormOpt!P51") & Range("FormOpt!P52") & ".pdf"
'Druckbereich "FormLayout!A1:FormLayout!G48"
Range("FormLayout!A1:FormLayout!G48").ExportAsFixedFormat xlTypePDF, Filename:=DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=True, OpenAfterPublish:=False

'Email generieren
Dim Outlook As Object
Dim OutlookMailItem As Object
Dim Emailanhang As Object

Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set Emailanhang = OutlookMailItem.Attachments

With OutlookMailItem
'Emailempfänger wird aus aus Zelle FormOpt!P53 übernommen
.To = Range("FormOpt!P53").Value2
'Email-Betreff wird aus Zelle FormOpt!P54 übernommen
.Subject = Range("ReklaFormOpt!P54").Value2
'Emailtext wird aus der Zelle FormOpt!P55 übernommen
.Body = Range("FormOpt!P55").Value2
'Emailanhang
Emailanhang.Add DateiName
'Generierte Email anzeigen
.Display
End With

'App löschen
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing

ErrHandler:

ElseIf iClick = vbNo Then
MsgBox "Dann überprüfen Sie die eingegeben Daten. Vorgang abgebrochen!"
End If
End sub
Sub pdfemail() 'PDF erstellen und diese als Anlage an E-Mail einfügen. 'Mail-Versand im Anschluss über Outlook möglich 'Bestätigung - Überprüfung der eingeben Daten Dim iClick As Integer iClick = MsgBox( _ prompt:="Sind alle Angaben korrekt? Wollen Sie das Formular als PDF speichern und anschließend per Email versenden?", _ Buttons:=vbYesNo) If iClick = vbYes Then 'Fehler vermeiden On Error GoTo ErrHandler 'PDF Erstellen - In der Zelle FormOpt!P51 den Speicherpfad angeben! 'Die Zelle FormOpt!P52 Gibt den Dateinamen aus ggf. anpassen Dim DateiName As String DateiName = Range("FormOpt!P51") & Range("FormOpt!P52") & ".pdf" 'Druckbereich "FormLayout!A1:FormLayout!G48" Range("FormLayout!A1:FormLayout!G48").ExportAsFixedFormat xlTypePDF, Filename:=DateiName, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=True, OpenAfterPublish:=False 'Email generieren Dim Outlook As Object Dim OutlookMailItem As Object Dim Emailanhang As Object Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMailItem = OutlookApp.CreateItem(0) Set Emailanhang = OutlookMailItem.Attachments With OutlookMailItem 'Emailempfänger wird aus aus Zelle FormOpt!P53 übernommen .To = Range("FormOpt!P53").Value2 'Email-Betreff wird aus Zelle FormOpt!P54 übernommen .Subject = Range("ReklaFormOpt!P54").Value2 'Emailtext wird aus der Zelle FormOpt!P55 übernommen .Body = Range("FormOpt!P55").Value2 'Emailanhang Emailanhang.Add DateiName 'Generierte Email anzeigen .Display End With 'App löschen Set OutlookApp = Nothing Set OutlookMailItem = Nothing ErrHandler: ElseIf iClick = vbNo Then MsgBox "Dann überprüfen Sie die eingegeben Daten. Vorgang abgebrochen!" End If End sub


Wie kann ich realisieren, dass nach dem Speichern der PDF der Ordner geöffnet wird, wo die PDF gespeichert ist. Also nicht die PDF in einen Reader sondern wirklich der Ordner im Explorer wo die Datei auch liegt.

Für eure Hilfe wäre ich sehr Dankbar...

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

Betreff
Datum
Anwender
Anzeige
AW: Nach dem Speichern der PDF - Ordner öffnen
13.08.2023 16:59:01
Oberschlumpf
Hi Hendrik,

schreib unterhalb von...


.Display
End With

...das hier...


Shell "explorer " & Range("FormOpt!P51").Value, vbNormalFocus

...hilfts?

Voraussetzung ist, dass in Range("FormOpt!P51").Value der korrekte Speicherpfad angegeben ist.

Ciao
Thorsten
Nach dem Speichern der PDF - Ordner öffnen
14.08.2023 20:25:33
Hendrik
Das passt...

Sehr schön, genau so soll es sein... Vielen dank!

Und ein großes Danke an den Betreiber der Seite. Danke, dass er die Plattform stellt um Leute zusammenzubringen die sich gegenseitig helfen!

Weiter so!
Anzeige

46 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Anzeige

Infobox zum Thema

EXCEL - Nach dem Speichern der PDF Ordner öffnen


Inhaltsverzeichnis


Die Fragestellung


Du möchtest, dass nach dem Speichern einer Excel-Datei als PDF der Ordner, in dem die PDF gespeichert wurde, automatisch geöffnet wird.


Erläuterung des Problems {#erläuterung-des-problems}


Das automatische Öffnen eines Ordners nach dem Speichern einer Datei ist nicht standardmäßig in Excel integriert. Dies erfordert eine zusätzliche VBA-Programmierung, um nach dem Speichern der PDF den entsprechenden Ordner zu öffnen.


Lösung des Problems {#lösung-des-problems}


Du kannst VBA verwenden, um die Excel-Datei als PDF zu speichern und anschließend den Ordner mit dem Windows-Explorer zu öffnen. Hier ist ein Beispielcode, der dies tut:

Sub SaveAsPDFAndOpenFolder()
    Dim pdfPath As String
    Dim folderPath As String
    Dim shell As Object

    ' Pfad und Name der PDF-Datei festlegen
    pdfPath = "C:\Pfad\zum\Ordner\Dateiname.pdf"

    ' Speichere das aktive Blatt als PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath

    ' Ordnerpfad aus dem vollständigen Dateipfad extrahieren
    folderPath = Left(pdfPath, InStrRev(pdfPath, "\"))

    ' Windows Shell Objekt erstellen
    Set shell = CreateObject("WScript.Shell")

    ' Öffne den Ordner, in dem die PDF gespeichert wurde
    shell.Run "explorer.exe " & folderPath, vbNormalFocus

    ' Aufräumen
    Set shell = Nothing
End Sub

Dieser Code speichert das aktive Arbeitsblatt als PDF in dem angegebenen Pfad und öffnet dann den Ordner, in dem die PDF gespeichert wurde.


Anwendungsbeispiele aus der Praxis


  • Berichtswesen: Automatisches Öffnen des Speicherorts nach dem Exportieren von Berichten, um eine schnelle Überprüfung zu ermöglichen.
  • Dokumentenmanagement: Nach dem Speichern wichtiger Dokumente als PDF den Ordner öffnen, um weitere Dateioperationen durchzuführen.

Tipps


  • Stelle sicher, dass der Pfad zum Speichern der PDF existiert, bevor du den Code ausführst.
  • Du kannst den Code in ein größeres Makro integrieren, das mehrere Operationen ausführt, wie z.B. das Speichern mehrerer Blätter als PDFs.

Verwandte Themenbereiche


  • VBA-Programmierung
  • Automatisierung von Dateioperationen
  • Dokumentenmanagement mit Excel

Zusammenfassung


Mit VBA kannst du nicht nur eine Excel-Datei als PDF speichern, sondern auch den Ordner öffnen, in dem die PDF gespeichert wurde. Dies verbessert den Workflow und die Effizienz, indem es den sofortigen Zugriff auf die gespeicherte Datei ermöglicht. Der bereitgestellte Code kann als Grundlage für eine Vielzahl von Automatisierungsaufgaben dienen, die über das reine Speichern von Dateien hinausgehen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige