Hallo,
ich habe mir aus Fundstücken und mit Hilfe hier im Forum einen VBA-Code zusammengebastet, der PDFs erzeugt, verschickt und druckt https://www.herber.de/forum/archiv/1640to1644/t1640252.htm. Nun möchte ich noch erreichen, dass die Mail von einem bestimmten Mailaccount aus verschickt wird. Deshalb wollte ich
Set .SendUsingAccount = .Session.Accounts.Item("info@domain.de")
in den Code einbauen. Ich habe natürlich sichergestellt, dass in Outlook ein Pop3 Account für info@domain.de existiert und auch darüber versendet werden kann. Ich nutze vermutlich die falsche Syntax oder platziere die Zeile falsch. Vor dem Send Befehl erhalte ich Fehler "5 Ungültiger Prozeduraufruf oder ungültiges Argument VBAProjekt", baue ich es danach ein, kommt Fehler "-2147221238 Das Element wurde verschoben oder gelöscht Microsoft Outlook.
Wie muss ich das einbauen?
Hier der Einbau in den zuletzt von Sepp verbesserten Code, wie es nicht funktioniert:
Sub PrintMailPDF()
Dim objOLOutlook As Object
Dim objOLMail As Object
Dim lngMailNr As Long
Dim lngZaehler As Long
On Error GoTo ErrorHandler
Set objOLOutlook = CreateObject("Outlook.Application")
lngMailNr = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
For lngZaehler = 2 To lngMailNr
If Cells(lngZaehler, 2) <> "" Then
With Sheets("Verarbeitung")
.Range("d1") = lngZaehler
.Calculate
.ExportAsFixedFormat xlTypePDF, Sheets("Daten").Cells(lngZaehler, 2).Text
.PrintOut
Sleep 500
End With
Set objOLMail = objOLOutlook.CreateItem(olMailItem)
With Sheets("Mail")
With objOLMail
.To = Cells(lngZaehler, 1)
.CC = "testmai@makro.de"
.Subject = Cells(lngZaehler, 2) & " - " & Cells(lngZaehler, 4)
.BodyFormat = olFormatPlain
.Body = "Hallo " & Cells(lngZaehler, 3) & "," & vbCrLf
Dim strAttachmentPfad1 As String
strAttachmentPfad1 = ActiveSheet.Cells(lngZaehler, 6)
.Attachments.Add strAttachmentPfad1
Set .SendUsingAccount = .Session.Accounts.Item("info@domain.de")
.Send
'.Display
End With
End With
Sleep 500
Set objOLMail = Nothing
End If
Next lngZaehler
Set objOLOutlook = Nothing
Exit Sub
ErrorHandler:
MsgBox Err.Number & " " & Err.Description & " " & Err.Source, vbInformation
Exit Sub
End Sub
Viele Grüße
Frank