369 Aufrufe
Gefragt in Anwendungen(Java,C++...) von

Hallo Leute,

finde leider den Fehler nicht. Habe ein Excel Makro erstellt mit dem sich eine Mail mit Anhang (usw.) in Outlook öffnet. Funktioniert bei meinem Laptop (Excel u. Outlook 2016) einwandfrei.

Auf meinem PC (mit Excel u. Outlook 2010) leider nicht. Sämtliche Makros funktionieren, jedoch nicht mehr das öffnen von Outlook und damit verbunden auch die Mail mit Anhang.

Hier ist mein Code (beim Ausführen und Debuggen wird immer die ".To" Zeile markiert. Wüsste aber nicht warum das falsch sein sollte)  Danke euch

Dim Pfad As String
Dim Arbeitsmappe As String

If Cells(ActiveCell.Row, 2) = "Anfrage" Then
    Pfad = "C:\Users\Christoph\Desktop\Pension\Angebot_Bestätigung\Email\Anfrage.pdf"
Else
    Pfad = "C:\Users\Christoph\Desktop\Pension\Angebot_Bestätigung\Email\Buchung.pdf"
End If

ChDir ("C:\Users\Christoph\Desktop\Pension\Angebot_Bestätigung\Email")

If Cells(ActiveCell.Row, 2) = "Anfrage" Then
    ThisWorkbook.Worksheets("Email Deutsch").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad, OpenAfterPublish:=True
Else
    ThisWorkbook.Worksheets("Email Best").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Pfad, OpenAfterPublish:=True
End If

Dim Outlook As Object
Dim OutlookMailItem As Object
Dim myAttachments As Object
Dim MailText As String
Dim PreCheckIn As String


Set OutlookApp = CreateObject("outlook.application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments

If Cells(ActiveCell.Row, 2) = "Anfrage" Then
    MailText = "Bedanken uns für ihre Anfrage und freut uns, dass sie ihren nächsten Urlaub bei uns verbringen möchten." & vbLf & "Sämtliche Infos entnehmen sie bitte dem Anhang." & vbLf & vbLf & "Über eine positive Antwort ihrerseits würden wir uns sehr freuen." & vbLf & vbLf & "Herzliche Grüße aus Walchsee" & vbLf & "Signature"
Else
    MailText = "Bedanken uns für die Buchung und bestätigen Ihren Urlaubstermin vom " & Cells(ActiveCell.Row, 5) & " bis " & Cells(ActiveCell.Row, 6) & "." & vbLf & vbLf & "Sämtliche Infos über die Anzahlung, Restzahlng, Stornobedingungen, etc. entnehmen sie bitte dem Anhang." & vbLf & "Nur unter Einhaltung der Zahlungsfristen bleibt ihre Buchung aufrecht!" & vbLf & "Damit Sie noch bequemer einchecken, können Sie schon jetzt vor Reiseantritt ihre Daten für Ihre pesönliche Kaiserwinkl-Card angeben und erhalten diese sofort bei Ankunft in unserem Haus. Der Link befindet widerum im Anhang." & vbLf & vbLf & "Sollten sie Fragen haben, können sich jederzeit bei uns melden." & vbLf & vbLf & "Herzliche Grüße aus Walchsee" & vbLf & "Signatur"
End If

With OutlookMailItem
.to = Cells(ActiveCell.Row, 13)
.Subject = Cells(ActiveCell.Row, 2) & " " & Cells(ActiveCell.Row, 3) & " vom " & Cells(ActiveCell.Row, 5) & " bis " & Cells(ActiveCell.Row, 6)
.Body = "Sehr geehrte Fam. " & Cells(ActiveCell.Row, 3) & "!" & vbLf & vbLf & MailText


myAttachments.Add Pfad
.Display
End With

Set OutlookApp = Nothing
Set OutlookMailItem = Nothing

2 Antworten

+1 Punkt
Beantwortet von flupo Profi (17.8k Punkte)
Ohne jetzt tiefer in die Fehlersuche einzusteigen: Cells() verweist auf ein Zell-Objekt. Wenn du der Variable den Inhalt der Zelle zuweisen willst, musst du Cells().Value nehmen.

Gruß Flupo
0 Punkte
Beantwortet von csav1449 Einsteiger_in (23 Punkte)
Flupo du bist der Beste. Vielen Dank

Info für Andere: Das office paket 2016 funktioniert auch ohne die .Value angabe. Frühere Versionen benötigen die genaue Zellangabe, wie oben beschrieben
...