habe den unten stehenden Code zum Mailversand.
Wenn in dem Suchbereich die Adresse des Suchbegriffes nicht gefunden wird, überspringt er diesen Teil einfach. Ich möchte aber, dass der Benutzer eine Meldung erhält, dass die Mail NICHT versandt wurde und eventuel sogar die Möglichkeit hat, diese per Inputbox einzugeben.
Sub mailversenden()
Dim OutApp As Object, Mail As Object
Dim adresse As String
'Fehlerroutine
On Error Resume Next
'Warten von Outlook um PDF Datei zu erstellen
Application.Wait (Now + TimeValue("0:00:05"))
Worksheets("system").Activate
'Fehlerroutine alternativ
'On Error GoTo 0
'zugehörige adresse finden
adresse = WorksheetFunction.VLookup(Range("F1"), Range("H3:I100"), 2, 0)
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = adresse
.Subject = Worksheets("system").Range("P3")
.Body = Worksheets("system").Range("P4")
.Attachments.Add Worksheets("system").Range("k4") & "Bühnen_" & Worksheets("system").Range(" _
f1") & "_" & Format(Now, "YYYYMMDD") & ".pdf"
If Worksheets("system").Range("P1").Value = "x" Then 'wenn in OPTIONEN haken _
entsprechende Einstellung angeklickt
.display
Else
.send
End If
End With
Set OutApp = Nothing 'gesetzte Objekte löschen
Set Nachricht = Nothing 'gesetzte Objekte löschen
'alternative Fehlermeldung
'fehler: MsgBox "Es ist ein Fehler aufgetreten!" & vbCrLf & "Bitte überprüfen Sie die _
Mailadresse für " & _
' Worksheets("system").Range("f1") & vbCrLf & "oder überprüfen Sie die PDF Datei in " & _
vbCrLf & _
' Worksheets("system").Range("k4"), vbInformation
End Sub
Ausserdem:
Das Programm ist für Excel 2003. Ich habe allerdings Excel 2007. Und ich kann mich erinnern, dass ein Mailversand unter Excel 2003 nicht so einfach per VBA zu realisieren war. Bei 2007 reicht scheinbar ein .send aus. War doch so?!?
Was müsste ich noch ergänzen um die zwei Warnmeldungen im Outlook 2003 ohne Tastendruck zu umgehen?
Hat jemand einen Vorschlag hierfür
Grüße Steffen