Script maakt geen pdf meer aan

Status
Niet open voor verdere reacties.

Goedwillend

Nieuwe gebruiker
Lid geworden
20 dec 2024
Berichten
2
Goedendag,

Ik heb m.b.v. van onder andere dit forum onderstaand script in elkaar kunnen zetten.
Als ik de de dim voor de pdf-file en het maken van deze file eruit laat, werkt hij perfect. Ik krijg dan keurig een email met een jpg als handtekening. Precies wat ik wil.

Als ik onderstaand script ga uitvoeren geeft hij een error bij de regel waar de pdf wordt opgemaakt. Ik krijg als foutmelding:
Fout 5
Ongeldige procedure-aanroep of ongeldig argument

Sub Voorbeeld()
Dim OutApp As Object
Dim OutMail As Object
Dim PdfFile As String
Dim MailAdres As String
Dim MailCC As String
Dim MailOnderwerp As String
Dim ws As Worksheet
Dim imagePath As String
Dim picture As picture
Dim StrBody As String

PdfFile = Environ("temp") & "\" & ("Document") & ".pdf"
Sheets("Sheet1").Range("A1:C51").ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

MailAdres = Sheets("Sheet2").Range("D27")
MailCC = Sheets("Sheet2").Range("D28") & ";" & Sheets("Sheet2").Range("D29") & ";" & Sheets("Sheet2").Range("D30") & ";" & Sheets("Sheet2").Range("D31")
MailOnderwerp = Sheets("Sheet2").Range("D32")
Set ws = ThisWorkbook.Sheets("Picture")
imagePath = "C:\Users\Picture.jpg"
StrBody = "<html><body><p>Regel1, " & "<br>" & _
"<br>" & _
Sheets("Sheet2").Range("D33").Value & "<br>" & _
"Regel2.</p> " & _
"<img src='cid:Picture.jpg'>"

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = MailAdres
.CC = MailCC
.BCC = ""
.Subject = MailOnderwerp
.Body = MailBody
.HTMLBody = StrBody
.Attachments.Add imagePath, 1, 0, "Picture"
.Attachments.Add PdfFile
.Display
End With
End Sub

Weet iemand een oplossing??
 
Zet je code in codetags, zie mijn handtekening.
Er zitten meerdere fouten in die code.
Plaats je geanonimiseerde document hier.
 
Bij mij wordt netjes Document.pdf aangemaakt in de temp map, en na aanpassen van werkbladnamen en de verwijzing naar het plaatje ook een mailtje met het plaatje in de body.
ws wordt nergens gebruikt dus je kunt Set ws = ThisWorkbook.Sheets("Picture") verwijderen. De naamgeving van je pdf document kan wat simpeler:
Code:
PdfFile = Environ("temp") & "\Document.pdf"
in plaats van
Code:
PdfFile = Environ("temp") & "\" & ("Document") & ".pdf"
 
@ Edmoor: Dank voor je reactie. Het bleek dat het betreffende werkblad verborgen stond. Zichtbaar maken loste het probleem op. Evengoed dank voor je reactie.

@ AHulpje: Dat weet ik, maar scripts die ik nu heb werken prima voor wat ik wil. Ook dank voor je reactie.
 
Ik hoop niet dat bezoekers van dit forum ook maar iets van deze code overnemen.
In dit geval is deze code namelijk voldoende en afdoende.

Code:
Sub M_snb()
    c00 = Environ("temp") & "\document.pdf"
    sn = Sheets("Sheet2").Range("D27:D33")
    Sheets("Sheet1").Range("A1:C51").ExportAsFixedFormat 0, c00
     
    With CreateObject("Outlook.Application").CreateItem(0)
      .To = sn(1, 1)
      .CC = sn(2, 1) & ";" & sn(3, 1) & ";" & sn(4, 1) & ";" & sn(5, 1)
      .Subject = sn(6, 1)
      .HTMLBody = "<html><body><p>Regel1, <br><br>" & sn(7, 1) & "<br>Regel2.</p> <img src='cid:Picture.jpg'>"
      .Attachments.Add "C:\Users\Picture.jpg", 1, 0, "Picture"
      .Attachments.Add c00
      .Send
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan