Hallo zusammen,
ich habe folgendes Problem:
Im nachfolgenden Makro rufe ich eine neue E-mail auf inkl. Anhang.
Das Kuriose dabei ist, dass dies bei mir funktioniert, auf einigen Rechnern in der Firma ebenfalls - nur auf 1-2 eben nicht!
Dort kommt dann die Fehlermeldung:
Laufzeitfehler 2147417851 (80010105) Methode "To" für Objekt '_MailItem' ist fehlgeschlagen
Meine eigene Recherche hat nichts bzw. englische Foreneinträge (da bräuchte ich Tage, bis ich das kapiere, was dort geschrieben ist).
Als aktivierte Verweise im VBA-Project habe ich folgendes aktiviert:
- Visual Basic for Applications
- Microsoft Excel 14.0 Object Library
- OLE Automation
- Microsoft Office 14.0 Object Library
Damit läuft es. Auf dem Rechner, auf dem es nicht läuft, ist das Gleiche aktiviert, lediglich ist dort anstatt Version 14 die Version 15.
If ThisWorkbook.Path = "" Then
MsgBox "Erst die Datei speichern, dann kann das" & Chr(10) & Chr(10) & "Angebot per E-Mail versendet werden!", 16
ElseIf Worksheets("Eingabe").Cells(4, 15) = "" Or Worksheets("Eingabe").Cells(4, 15) = "Nummer?" Then
MsgBox "Es wurde noch keine Angebots-Nr. vergeben!" & Chr(10) & Chr(10) & "Bitte nachholen ...!?", 16
Else
' SET Outlook APPLICATION OBJECT.
Dim objOutlook As Object
Dim objEmail As Object
Dim myAttachments As Object
'Datei für PDF definieren
Dim DateiNameAngebot As String
DateiNameAngebot = ActiveWorkbook.Path & "\" & Left(ActiveWorkbook.name, InStrRev(ActiveWorkbook.name, ".") - 1) & " - ANGEBOT.pdf"
'Angebotsblatt in PDF exportieren
Worksheets("Angebot").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
DateiNameAngebot, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
'Variabeln setzen (füllen)
Set objOutlook = CreateObject("Outlook.Application")
Set objEmail = objOutlook.CreateItem(0)
Set myAttachments = objEmail.Attachments
' CREATE EMAIL OBJECT.
With objEmail
.To = Worksheets("Eingabe").Cells(9, 21)
.Subject = "Angebot " & Worksheets("Angebot").Cells(4, 13)
.Body = Worksheets("Angebot").Cells(9, 2) & Chr(10) & Chr(10) & Worksheets("Angebot").Cells(1, 20) & Chr(10) & Chr(10)
.GetInspector
.Display
.Attachments.Add DateiNameAngebot
End With
' CLEAR.
Set objEmail = Nothing: Set objOutlook = Nothing: Set myAttachments = Nothing:
End If
End Sub
Hat jemand eine Idee, wo mein Fehler liegt oder besser, wie ich das gelöst bekommen?
Grüße
Peter