Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gespeicherte PDF wieder löschen

Gespeicherte PDF wieder löschen
07.01.2014 19:05:51
Heinz
Hallo Leute
Ich habe einen Code der mir einen Sheets als PDF im Pfad speichert und diese PDf Datei in Outlook als Datei einfügt.
Funktioniert alles super. Nur möchte ich die gespeicherte PDF nach einfügen in Outook wieder löschen.
Wird jeden Tag gemacht,somit bekomme ich 365 PDF Dateien.
Könnte mir dazu bitte jemand weiterhelfen?
Gruß Heinz
Option Explicit
Sub Als_PDF_speichern_versenden()
Dim pdfName As String
Dim pdfOpenAfterPublish As Boolean
Dim olApp As Object
Dim sPath As String
pdfOpenAfterPublish = True ' PDF wird geöffnet
Rem Pfad und Name der PDF-Datei
With Sheets("Drucken")
pdfName = "H:\Test\Gesperrte Ware\" & "Gesperrte Ware " & Format(Date - 1, "dddd dd mmmm  _
yyyy") & ".pdf"
End With
Rem PDF-Datei erstellen. Funktioniert nur in Excel 2007 oder höher, nicht in Excel 2003 oder ä _
lter
Sheets("Drucken").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
Quality:=xlQualityStandard, IncludeDocProperties:=False,  _
IgnorePrintAreas:=False, _
OpenAfterPublish:=IIf(pdfOpenAfterPublish, True, False)
Rem Email erstellen
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.To = Range("D200").Value
.CC = Range("D201") & ";" & Range("D202") & ";" & Range("D203") & ";" & Range(" _
D204") & ";" & Range("D205") & ";" & Range("D206") & ";" & Range("D207") & ";" & Range("D208") & ";" & Range("D209") & ";" & Range("D210") & ";" & Range("D211") & ";" & Range("D212") & ";" & Range("D213") & ";" & Range("D214")
.Subject = "Gesperrte Ware    " & Sheets("Drucken").Range("B1").Value
.HTMLBody = "Mit freundlichen Grüßen"
.Attachments.Add pdfName
.Display
End With
Rem Boolean-Variable "pdfOpenAfterPublish" zurücksetzen
pdfOpenAfterPublish = False
End Sub

Anzeige

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gespeicherte PDF wieder löschen
07.01.2014 19:10:12
mumpel
Hallo!
Am Ende des Makros die Zeile Kill pdfName setzen.
Gruß, René

AW: Gespeicherte PDF wieder löschen
07.01.2014 19:14:03
Matze
Hallo,
sehe im Code nicht das er die Datei "sofort" sendet, somit wäre mitt Kill die Datei weg bevor die rausgeht, oder Irre ich mich wieder?
Kratz Kopf Matze

Anzeige
AW: Gespeicherte PDF wieder löschen
07.01.2014 19:18:11
Heinz
Hallo Matthias
Ja du hast recht.
Schei..e
Gäbe es evetuell eine andere Lösung?
Danke Heinz

AW: Gespeicherte PDF wieder löschen
07.01.2014 19:21:40
Matze
Hallo Heinz,
wie hättest du es denn gerne?
a) manuell versenden, danach eine Abfrage ob die Datei gelöscht werden kann?
b) direkt versenden und löschen danach?
bin aber kein Profi in VBA da ist mumpel und auch Hajo eher gefragt!
Matze

Anzeige
@Heinz,...
07.01.2014 19:32:37
Matze
hier noch kurz angestoßen:
'################################################
.Display 'manuelle Möglichkeit zum senden
'.send ' direktes versenden
'################################################

AW: Gespeicherte PDF wieder löschen
07.01.2014 19:26:11
mumpel
Die Datei wird erst am Schluß gelöscht. Sobald die Mail erstellt wurde ist sie im Anhang. Der Email-Anhang ist bei Outlook separat (also eine Art Kopie), da macht das Löschen nichts aus. Schlimm wäre das nur wenn die Email ungesendet und ungespeichert geschlossen wird.
Bei Mozilla Thunderbird ist das anders, aber das soll hier nicht interessieren.

Anzeige
Danke mumpel für den Input, owT
07.01.2014 19:31:06
Matze

AW: Gespeicherte PDF wieder löschen
07.01.2014 19:14:36
Heinz
Hallo Rene
So einfach,wenn gewusst wie.
Recht herzlichen Dank
Gruß Heinz

AW: Gespeicherte PDF wieder löschen
07.01.2014 19:10:53
Hajo_Zi
benutz Kill Pfad\Dateiname
Die Datei wird nicht in den Papierkorb geschoben.
Gruß Hajo

Anzeige
AW: Gespeicherte PDF wieder löschen
07.01.2014 19:19:46
Heinz
Hallo Hajo
  • benutz Kill Pfad\Dateiname

  • Leider ist der Dateiname nie gleich
    Danke
    Heinz

    AW: Gespeicherte PDF wieder löschen
    07.01.2014 19:23:04
    Hajo_Zi
    Hallo Heinz,
    Du baust doch in Deinem Code den Dateinamen zusammen, also hast Du ihn.
    Gruß Hajo

    Anzeige
    AW: Gespeicherte PDF wieder löschen
    07.01.2014 19:28:48
    Heinz
    Hallo Hajo
    Du baust doch in Deinem Code den Dateinamen zusammen, also hast Du ihn.
    
    Ja natürlich.
    Danke
    Deswegen wird die geöffnete PDF auch gelöscht.
    Am besten,wenn möglich,glaube ich,das die PDF die in Outlook eingefügt wurde,diese Datei zu öffnen.
    Gruß Heinz

    Anzeige
    AW: Gespeicherte PDF wieder löschen
    07.01.2014 19:24:37
    Matze
    Heinz,
    du speicherst doch den Pfad und den Namen der Datei in einem String ab,
    somit kann diese Angabe auch zum löschen angenommen werden!
    Matze

    Danke an alle Helfer
    07.01.2014 19:52:42
    Heinz
    Hallo Matthias,Mumpel & Hajo
    Ich bedanke mich recht herzlich bei euch allen,für die angebotenen Hilfestellungen.
    Werde wohl oder übel die älteren PDF-Dateien täglich löschen müssen.
    Nochmals recht herzlichen Dank
    Gruß
    Heinz

    Anzeige
    AW: Danke an alle Helfer
    07.01.2014 20:07:09
    Heinz
    Hallo Matze
    Du hast total recht,wie blöd von mir.
    Danke,Danke
    Gruß Heinz

    Anzeige
    AW: Danke an alle Helfer
    07.01.2014 20:13:56
    mumpel
    Noch erwähnenswert:
    Wenn das Makro schneller abläuft als die Mail erstellt wurde könnte der Anhang futsch sein. Aber mir ist das noch nie passiert. Wer nutzt schon heute noch alte Kisten die langsamer sind als ein Fahrrad. ;-)

    AW: Danke an alle Helfer
    07.01.2014 20:19:46
    Heinz
    Hallo Mumpel
    Das Makro passt schon so.
    Eventuell könntest du mir bei einen Datumsformat helfen?
    pdfName = "H:\Test\Gesperrte Ware\" & "Gesperrte Ware " & Range("B1").Value,"DD.MMMM.YYYY") & ".pdf"
    
    Die PDF speichert den Namen, und das Datum von B1
    Nur bekomme ich das Datums Format nicht hin.
    Hättest du dazu bitte nochmals eine Hilfe anzubieten?
    Gruß Heinz

    Anzeige
    AW: Danke an alle Helfer
    07.01.2014 20:28:53
    mumpel
    Format(Range("B1").Value,"DD.MMMM.YYYY")

    AW: Danke Mumpel
    07.01.2014 20:32:14
    Heinz
    Nochmals Danke Mumpel
    Jetzt kann ich beruhigt schlafen gehen.
    Dankeschön & gute Nacht
    Gruß Heinz

    AW: Danke Mumpel
    07.01.2014 20:55:21
    mumpel
    "& gute Nacht"-> Schön wärs, aber muss noch arbeiten bis 00:22 Uhr. ;-)

    Anzeige
    AW: Danke an alle Helfer
    07.01.2014 21:35:14
    Luschi
    Hallo Heinz,
    um im Explorer die Dateien kalendermäßigt sortiert sich anzeigen zu lassen, nimm dieses Format:
    Format(Range("B1").Value,"YYYY.MM.DD").
    So stehen alle Dateien eines Jahres monatlich sortiert in einem Block:
    Gruß von Luschi
    aus klein-Paris

    AW: Danke an alle Helfer
    08.01.2014 20:19:08
    Heinz
    Hallo Luschi
    Danke für deinen Tip
    Gruß Heinz
    Anzeige
    ;
    Anzeige
    Anzeige

    Infobox / Tutorial

    Gespeicherte PDF-Datei in Excel löschen


    Schritt-für-Schritt-Anleitung

    Um eine PDF-Datei zu löschen, die Du mit Excel erstellt hast, kannst Du folgenden VBA-Code verwenden. Füge ihn am Ende Deines bestehenden Codes ein, um die PDF-Datei nach dem Versenden zu löschen:

    Kill pdfName

    Dieser Befehl entfernt die PDF-Datei aus dem angegebenen Verzeichnis. Stelle sicher, dass Du den richtigen Pfad und den Dateinamen in der Variablen pdfName speicherst, bevor Du den Kill-Befehl aufrufst. Der vollständige Code könnte wie folgt aussehen:

    Option Explicit
    Sub Als_PDF_speichern_versenden()
        Dim pdfName As String
        Dim pdfOpenAfterPublish As Boolean
        Dim olApp As Object
        Dim sPath As String
        pdfOpenAfterPublish = True ' PDF wird geöffnet
        ' Pfad und Name der PDF-Datei
        With Sheets("Drucken")
            pdfName = "H:\Test\Gesperrte Ware\" & "Gesperrte Ware " & Format(Date - 1, "dddd dd mmmm yyyy") & ".pdf"
        End With
        ' PDF-Datei erstellen
        Sheets("Drucken").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
            Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
            OpenAfterPublish:=IIf(pdfOpenAfterPublish, True, False)
        ' Email erstellen
        Set olApp = CreateObject("Outlook.Application")
        With olApp.CreateItem(0)
            .To = Range("D200").Value
            .CC = Range("D201") & ";" & Range("D202") & ";" & Range("D203") & ";" & Range("D204") & ";" & Range("D205") & ";" & Range("D206") & ";" & Range("D207") & ";" & Range("D208") & ";" & Range("D209") & ";" & Range("D210") & ";" & Range("D211") & ";" & Range("D212") & ";" & Range("D213") & ";" & Range("D214")
            .Subject = "Gesperrte Ware " & Sheets("Drucken").Range("B1").Value
            .HTMLBody = "Mit freundlichen Grüßen"
            .Attachments.Add pdfName
            .Display
        End With
        ' PDF löschen
        Kill pdfName
    End Sub

    Häufige Fehler und Lösungen

    1. Die Datei wird gelöscht, bevor sie versendet wird: Stelle sicher, dass der Kill-Befehl nach dem .Display-Befehl kommt, um sicherzustellen, dass die PDF-Datei als Anhang an die E-Mail angehängt ist, bevor sie gelöscht wird.

    2. Dateiname nicht konstant: Wenn der Dateiname jeden Tag anders ist, stelle sicher, dass Du den vollständigen Dateinamen in der Variable pdfName speicherst und diesen dann im Kill-Befehl verwendest.


    Alternative Methoden

    Falls Du die PDF-Dateien manuell löschen möchtest, kannst Du auch eine einfache Datei-Explorer-Aktion durchführen:

    1. Öffne den Datei-Explorer und navigiere zu dem Ordner, in dem die PDFs gespeichert sind.
    2. Wähle die gewünschten PDF-Dateien aus und drücke die Entf-Taste, um sie zu löschen.

    Alternativ kannst Du auch ein Skript schreiben, das alle PDF-Dateien in einem bestimmten Verzeichnis löscht, wenn Du regelmäßig aufräumen möchtest.


    Praktische Beispiele

    Hier sind einige Beispiele, wie Du PDF-Dateien in Excel erstellen und anschließend löschen kannst:

    1. Tägliche Berichterstattung: Wenn Du jeden Tag einen Bericht erstellst und als PDF speicherst, kannst Du den oben angegebenen Code verwenden, um die PDFs automatisch nach dem Versenden zu löschen.

    2. Monatliche Reporte: Ändere den Dateinamen so, dass er das aktuelle Datum oder den Monat enthält, z.B. "Report_YYYY_MM.pdf", und speichere die Dateien in einem spezifischen Ordner.


    Tipps für Profis

    • Automatisierung: Setze die PDF-Erstellung und das Versenden von E-Mails als Teil Deines täglichen Arbeitsablaufs ein, um Zeit zu sparen.
    • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen im VBA-Skript, um sicherzustellen, dass Dein Makro auch bei Problemen mit dem Versenden oder Löschen von PDFs robust bleibt.

    FAQ: Häufige Fragen

    1. Wie kann ich sicherstellen, dass die PDF-Datei in Outlook ankommt? Stelle sicher, dass Du die .Display-Methode verwendest, um die E-Mail vor dem Senden anzuzeigen. So kannst Du überprüfen, ob die PDF korrekt angehängt ist.

    2. Was passiert, wenn die PDF-Datei nicht gelöscht wird? Die Datei bleibt im Speicherort und kann manuell gelöscht werden. Wenn Du viele Dateien hast, kann dies schnell unübersichtlich werden. Verwende den Kill-Befehl, um die PDF-Dateien automatisch zu löschen.

    3. Kann ich mehrere PDF-Dateien gleichzeitig löschen? Ja, Du kannst eine Schleife verwenden, um alle PDF-Dateien in einem bestimmten Verzeichnis zu durchlaufen und sie mit dem Kill-Befehl zu löschen.

    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