Ich habe meine Datei nun so konfiguriert, dass sie bei einem Klick auf den Bestätigungsbutton _ in einer UserForm automatisch eine PDF-Datei generiert und diese per Mail versendet. Nun, es funktionierte bis vorhin auch. Dann wollte ich es schlussendlich nochmals testen und es kam die Meldung "Laufzeitfehler -2147287037....." - es werden nur noch Mails versendet, wenn Outlook auch geöffnet ist - sobald Outlook geschlossen ist kommt diese Meldung. Vorher hat die Datei Outl. eigenständig geöffnet. Hat jemand vielleicht einen fehlerfreien Code bzw. einen Lösungsvorschlag?
Private Sub CommandButton1_Click()
'Zuordnung der Zellen bez. Eingabewerte
Sheets("Tabelle1").Range("B6") = UserForm1.TextBox6.Value
Sheets("Tabelle1").Range("B8") = UserForm1.TextBox3.Value
Sheets("Tabelle1").Range("B10") = UserForm1.ComboBox1.Value
Sheets("Tabelle1").Range("B11") = UserForm1.ComboBox2.Value
Sheets("Tabelle1").Range("C13") = UserForm1.ComboBox3.Value
Sheets("Tabelle1").Range("E13") = UserForm1.TextBox5.Value
Dim sBlatt As String
Dim sPdfDateiF5 As String
Dim OutApp As Object
Dim OutMail As Object
Dim Antwort
If MsgBox("Möchten Sie die Überstundenmeldung abschicken? Das Programm schließt automatisch!", _
_
_
4, "Frage") = vbYes Then
' speichern unter als PDF:
sPdfDateiF5 = "H:\rw-......\......."
' speichert das aktuelle Blatt (=ActiveSheet) als PDF
ActiveWorkbook.Sheets("Tabelle1").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sPdfDateiF5, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
' Bezug zu Outlook herstellen...
Set OutApp = CreateObject("Outlook.Application")
' ...neue E-Mail erzeugen
Set OutMail = OutApp.CreateItem(0)
' Werte den Eigenschaften zuweisen...
OutMail.to = ""
OutMail.CC = ""
OutMail.BCC = ""
OutMail.Subject = "Überstundenmeldung"
OutMail.Body = "Sehr geehrte Damen und Herren, im Anhang finden Sie eine Überstundenmeldung _
_
_
der ......"
' Anhang hinzufügen:
OutMail.Attachments.Add sPdfDateiF5
' ...und abschicken
OutMail.Send
End If
' Objekte sauber auflösen
Set OutMail = Nothing
Set OutApp = Nothing
' Tabelle schließen
Application.DisplayAlerts = False
Application.Quit
End Sub
Ich habe das ganze nach langem hin und her und nach langem suchen so übernommen und modifiziert bzw. angepasst...Vielleicht hat ja jemand eine Idee oder einen besseren Code :)