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.

Prüfen ob eine Datei vorhanden ist
#1
Hallo, vielleicht kann mir jemand weiterhelfen.
ich verschicke täglich drei Dateien per Mail, doch nicht immer sind alle 3 Dateien vorhanden bzw. werden benötigt.

Ich möchte also erreichen, das Excel prüft ob die erste Datei vorhanden ist, und sie dann als Anhang ins Mail-Programm einfügt, dann zur nächsten Datei geht.. und so weiter


Sub TEST()
Dim Outlook As Object
Dim Mail As Object
Dim Att As Object
Dim strDateiname As String
Dim Pfad As String
Dim strPDF As String

Set Outlook = GetObject(, "outlook.application")
Set Mail = Outlook.CreateItem(0)
Mail.To = "Empfänger"

Mail.Subject = "Tagesabschluss vom" & " " & Format(Now - 1, "DD.MM.YYYY")

If Dir("H:\DE\Bremen\Garden\Datei_1.pdf") <> "" Then
Mail.Attachments.Add ("H:\DE\Bremen\Garden\Datei_1.pdf")
End If
If Dir("H:\DE\Bremen\Garden\Datei_2.pdf") <> "" Then
Mail.Attachments.Add ("H:\DE\Bremen\Garden\Datei_2.pdf")
End If
If Dir("H:\DE\Bremen\Garden\Datei_3.pdf") <> "" Then
Mail.Attachments.Add ("H:\DE\Bremen\Garden\Datei_3.pdf")
End If

Mail.Body = ("Hallo Frau ...,") & Chr(10) & "" & Chr(10) & ("anbei die Dateien zum Tagesabschluss vom") & " " & Format(Now - 1, "DD.MM.YYYY") _
 & Chr(10) & "" & Chr(10) & (Tabelle1.Range("B9").Value) & Chr(10) & "" & Chr(10) & (Tabelle1.Range("F3").Value)
Mail.Display 

End Sub

Es sollen also nur die vorhandenen Dateien als Anhänge eingefügt werden.

Leider klappt das immer noch nicht, sobald eine Datei fehlt bekomme ich eine Fehlermeldung.

Kann mir jemand helfen?

Vielen Dank

Frank
Antwortento top
#2
Hallo Frank,

Welche Fehlermeldung erscheint denn und welche Zeile wird denn gelb markiert?
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#3
Hallo Frank,

dein Progrämmchen läuft einwandfrei. Der code ist ok, also kann ich mich nur Schauan anschließen.

Aber mal 'ne Frage und noch ein Tipp.
Warum schließt die die String (Texte) und  Range-Codes zusätzlich noch in Klammern ein?

Wenn die Dateien wirklich so heißen  wie angeführt, kann man das auch in einer Schleife ausführen lassen.

Außerdem kam bei mir gleich ein Fehler, weil ich Outlook nicht geöffnet hatte. Habe Dir mal einen Zusatz reingemacht, der Outlook öffnet, wenn es zu ist.

Ggf. möchtest Du auch noch eine Signatur anfügen?!

Code:
Option Explicit

Sub TEST()
 Dim Outlook As Object
 Dim Mail As Object
 Dim Att As Object
 Dim strDateiname As String
 Dim strPfad As String
 Dim strPDF As String, i As Integer
 Dim sSignatur As String
 
 On Error Resume Next
 Set Outlook = GetObject(, "outlook.application")
 If Outlook Is Nothing Then
   CreateObject ("outlook.application")
 End If
 On Error GoTo 0
 Set Mail = Outlook.CreateItem(0)
 Mail.to = "Empfaänger"

 Mail.Subject = "Tagesabschluss vom" & " " & Format(Now - 1, "DD.MM.YYYY")

 strPfad = "H:\DE\Bremen\Garden\"
 For i = 1 To 3
   If Dir(strPfad & "Datei_" & i & ".pdf") <> "" Then
      Mail.Attachments.Add (strPfad & "Datei_" & i & ".pdf")
   End If
 Next i
 
 Mail.GetInspector
 sSignatur = Mail.body
 
 Mail.body = "Hallo Frau ...," & Chr(10) & Chr(10) & "anbei die Dateien zum Tagesabschluss vom" & " " & Format(Now - 1, "DD.MM.YYYY") _
  & Chr(10) & Chr(10) & Tabelle1.Range("B9").Value & Chr(10) & Chr(10) & Tabelle1.Range("F3").Value & sSignatur
 Mail.Display

End Sub

viele Grüße aus Freigericht
Karl-Heinz
Antwortento top
#4
Moin!
Kann ein Moderator mal die echte Mail-Adresse, die sich als Link hinter "Empfaänger" befindet, löschen?

Merci!
Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antwortento top
#5
... erl.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#6
Hallo Karl-Heinz,

erstmal vielen Dank an euch alle.

Die Dateinamen "Datei_1, Datei_2, etc. sind nur als Beispiel gewählt. Real heissen sie Journal, Auswertung und Forecast. Daher klappt das mit der Schleife leider nicht.

Alles läuft perfekt solange alle Dateien vorhanden sind.
Sobald eine Datei fehlt, was passieren kann da nicht jeden Tag alle Dateien versendet werden, bricht das Programm mit einer Fehlermeldung ab.
Antwortento top
#7
Hallöchen,

leider haben wir immer noch nicht die angefragten Informationen Sad
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#8
Es wird die Zeile markiert die 


versucht eine Datei die nicht vorhanden ist einzufügen.

Es erscheint dann diese Fehlermekdung:

Siehe Anhang
Antwortento top
#9
Hallo Frank,

leider ist (bei mir) nichts zu sehen und wir sind genauso schlau wie vorher.

Über die Dir-Funktionalität wird eigentlich abgefangen ob die Datei vorhanden ist und es kommt erst gar nicht zum Einfügen, wenn die nicht da ist.
Ansonsten mal, das verpönte, On Error Resume Next, davor setzen, dann müsste auf jeden Fall Ruhe sein.

viele Grüße
Karl-Heinz
Antwortento top


Gehe zu:


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