Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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
Inhaltsverzeichnis

Mailversand Meldung bei fehlender Adresse

Mailversand Meldung bei fehlender Adresse
Steffen
Hi Leute.
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Mailversand Meldung bei fehlender Adresse
16.04.2010 16:57:42
fcs
Hallo Steffen,
ungetestet, da ich mit Outlook nicht arbeite.
Du muss die Fehlerbehandlung einbauen/verfeinern. So kann man Vlookup-Fehler abfangen.
Das Vorhandensein des Attachments kann man mit Dir prüfen.
Gruß
Franz
'Prozedur erstellt unter Excel 2003
Sub mailversenden()
Dim OutApp As Object, Mail As Object, Nachricht As Object
Dim adresse As String
On Error GoTo Fehler
'ab hier dann deine Prozedur
'Warten von Outlook um PDF Datei zu erstellen
Application.Wait (Now + TimeValue("0:00:05"))
Worksheets("system").Activate
'zugehörige adresse finden
adresse = WorksheetFunction.VLookup(Range("F1"), Range("H3:I100"), 2, 0)
'Prüfen, ob Attachment vorhanden
eMailVersand:
If Dir(Worksheets("system").Range("k4") & "Bühnen_" _
& Worksheets("system").Range("f1") & "_" & Format(Now, "YYYYMMDD") & ".pdf") = "" Then
MsgBox "Attachment für Mail ist nicht vorhanden! Bitte Dateinamen prüfen"
Else
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
End If
'Fehlerbehandlung
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'Alles ok
'do nothing
Case 1004 'vlookup-Fehler
If MsgBox(Prompt:="Fehler: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Bitte überprüfen Sie die Mailadresse für " & Worksheets("system").Range("f1") _
& vbLf & vbLf & "Möchten sie die email-Adresse jetzt eingeben?", _
Buttons:=vbInformation + vbYesNo, _
Title:="E-Mail Versand - Fehler") = vbYes Then
adresse = InputBox(Prompt:="Mailadresse für """ & Worksheets("system").Range("f1") _
& """ eingeben", Default:="", Title:="E-Mail Versand")
If adresse  "" Then Resume eMailVersand
End If
Case 99999 'Outlook-Fehler - korrekte Fehler-Nr. anpassen
MsgBox Prompt:="Fehler: " & .Number & vbLf & .Description & vbLf & vbLf _
& "E-Mail wurde nicht gesendet!", _
Buttons:=vbInformation + vbOKOnly, _
Title:="E-Mail Versand - Outlook-Fehler"
End If
Case Else
MsgBox "Fehler: " & .Number & vbLf & .Description
End Select
End With
Set OutApp = Nothing    'gesetzte Objekte löschen
Set Nachricht = Nothing 'gesetzte Objekte löschen
End Sub

Anzeige
tausend Dank!
16.04.2010 19:11:24
Steffen
hallo Franz.
danke für deine Mühe, ich werds dann gleich prüfen!
tausend Dank und scheenes Wochenende!
Grüße Steffen
Eigenartige Fehlermeldung....
19.04.2010 08:08:09
Steffen
Hallo Franz und all die Anderen.
Ich habe deinen Code nun mal eingebaut. allerdings kommt jetzt tregelmäßg beim Senden, statt der VLookUp-Abfangmeldung folgende
https://www.herber.de/bbs/user/69142.jpg
hab schon im Netz gesucht, kann mir aber keinen Reim draus machen. Es wird doch immer eine Mailadresse eingegeben, bevor er überhaupt fortfährt!?!?
Jemand Erfahrung damit
Danke
Steffen
Anzeige
AW: Eigenartige Fehlermeldung....
19.04.2010 11:45:36
fcs
Hallo Steffen,
das Problem kann ich nicht nachvollziehen, da kein Outlook benutzt wird.
Falls es wirklich eine leere Adresse sein sollte, dann ggf. eine zusätzliche Prüfung einbauen.
  'zugehörige adresse finden
adresse = WorksheetFunction.VLookup(Range("F1"), Range("H3:I100"), 2, 0)
If adresse = "" Then
adresse = InputBox(Prompt:="Keine E-Mail-Adresse eingetragen für: """ _
& Worksheets("system").Range("f1") _
& """" & vbLf & "ggf. jetzt eingeben", Default:="", Title:="E-Mail Versand")
If adresse = "" Then Exit Sub
End If

Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige