• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

EmailPDF

Status
Niet open voor verdere reacties.

DonJonsson

Gebruiker
Lid geworden
12 nov 2020
Berichten
16
Ik heb een script waarbij ik van een excelsheet een PDF maak en die dan verstuur met behulp van outlook (display)
Maar het script blijf hangen op:

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ignoreprintareas:=False, Filename:=Path & fname

Ik zit nu al een tijdje naar te kijken wat ik nu fout doe, maar ik zie het helaas niet.

Wat zou het script moeten doen:

PDF Creëren
Versturen met Outlook
De tabel op Tabblad "Bevest_List" vullen op basis van next row.

Totaal script:
Code:
Option Explicit

Sub EmailingAsPDF()

Dim EApp As Object
Set EApp = CreateObject("Outlook.Application")

Dim EItem As Object
Set EItem = EApp.CreateItem(0)

Dim ConfNr As Long
Dim Custname As String
Dim Supplname As String
Dim Salesp As String
Dim Email As String
Dim dt_issue As Date
Dim Path As String
Dim fname As String
Dim Subj As String
Dim Prod As String
'Dim DelDate As Date ==> staat uit
Dim nextrec As Range

Custname = Range("F14")
Supplname = Range("F10")
Salesp = Range("F11")
Subj = Range("F15")
dt_issue = Range("F13")
Email = Range("F12")
Prod = Range("F19")
'DelDate = Range("F40") ==> staat uit
Path = "C:\test\"
fname = Custname & "_" & Prod & "_" & DelDate

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ignoreprintareas:=False, Filename:=Path & fname


Set nextrec = Blad4.Range("A1048576").End(xlUp).Offset(1, 0)

nextrec = ConfNr
nextrec.Offset(0, 1) = Custname
nextrec.Offset(0, 2) = Prod
nextrec.Offset(0, 3) = Supplname
nextrec.Offset(0, 4) = Salesp
nextrec.Offset(0, 5) = Email
nextrec.Offset(0, 7) = Now

Blad4.Hyperlinks.Add anchor:=nextrec.Offset(0, 6), Address:=Path & fname & ".pdf"

With EItem

    .To = Range("F12")
    .CC = Range("R2")
    .Subject = "Confirmation nr: " & ConfNr
    .Body = "Bijgevoegd de bevestiging voor bla bla"
    .Attachments.Add (Path & fname & ".pdf")
    .Display

End With


End Sub
 

Bijlagen

Je gebruikt dubbele punten ":" in de naam van het bestand.
Dat mag niet.

Als je een commentaarteken voor DelDate zet moet je die variabele ook niet in de naam gebruiken.
 
Laatst bewerkt:
Ja, nu zie ik ook het ook. Hij werkt nu als een zonnetje.
Bedankt!

Dan had ik nog een vraagje.
Na het verzenden van een email, maakt hij een regel aan in Blad4 BEVEST_LIST.

Wanneer ik dit zou willen laten doen in een externe workbook. Hoe zou dat het beste gaan? Ik denk WORKBOOK.OPEN, maar daar krijg ik een foutmelding op.

Code:
Set nextrec = Blad4.Range("A1048576").End(xlUp).Offset(1, 0)

nextrec = ConfNr
nextrec.Offset(0, 1) = Custname
nextrec.Offset(0, 2) = Prod
nextrec.Offset(0, 3) = Supplname
nextrec.Offset(0, 4) = Salesp
nextrec.Offset(0, 5) = Email
nextrec.Offset(0, 7) = Now

Blad4.Hyperlinks.Add anchor:=nextrec.Offset(0, 6), Address:=Path & fname & ".pdf"
 
Laat dan zien wat je hebt gedaan en vertel er bij welke foutmelding je krijgt.
 
Laatst bewerkt:
Bijgevoegde de 2 documenten.

Ik dacht het op te kunnen lossen met: "Hij geeft een complimeerfout aan Sub of Functie is niet gedefineerd"

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ignoreprintareas:=False, Filename:=Path & fname

Workbooks.Open Filename:="C:\test\test_list.xlsx"

Set nextrec = Worksheet("Blad6").Range("A1048576").End(xlUp).Offset(1, 0)

nextrec = ConfNr
nextrec.Offset(0, 1) = Custname
nextrec.Offset(0, 2) = Prod
nextrec.Offset(0, 3) = Supplname
nextrec.Offset(0, 4) = Salesp
nextrec.Offset(0, 5) = Email
nextrec.Offset(0, 7) = Now

Blad6.Hyperlinks.Add anchor:=nextrec.Offset(0, 6), Address:=Path & fname & ".pdf"

ActiveWorkbook.Save
ActiveWorkbook.Close
 

Bijlagen

Laatst bewerkt:
Het object Worksheet bestaat niet.
Tevens is er geen Blad6.
 
De foutmelding die ik krijg:
Hij geeft een complimeerfout aan Sub of Functie is niet gedefineerd

Blad6 staat in bijlage "test_list.xlsx" welke ook in de bijlage zit. Daar zou het schript de gegevens heen moeten schrijven

Ik had worksheet bij mij ook al aangepast naar worksheets Dan krijg ik een foutmelding:
Fout 1004 tijdens uitvoering
Door de toepassing of door object gedefinieerde fout



Onderstaand zoals ik hem tot nu toe heb staan.

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, ignoreprintareas:=False, Filename:=Path & fname

Workbooks.Open Filename:="C:\test\test_list.xlsx"

Set nextrec = Worksheets("Blad6").Range("A1048576").End(xlUp).Offset(1, 0)

nextrec = ConfNr
nextrec.Offset(0, 1) = Custname
nextrec.Offset(0, 2) = Prod
nextrec.Offset(0, 3) = Supplname
nextrec.Offset(0, 4) = Salesp
nextrec.Offset(0, 5) = Email
nextrec.Offset(0, 7) = Now

Worksheets("Blad6").Hyperlinks.Add anchor:=nextrec.Offset(0, 6), Address:=Path & fname & ".pdf"

ActiveWorkbook.Save
ActiveWorkbook.Close
 
Je verwijst naar een werkblad met de naam Blad6 en die is er niet, wel een sheet object met de naam Blad6.
Daar moet je anders naar verwijzen.
Maak er eens dit van:
Code:
Workbooks.Open Filename:="C:\test\test_list.xlsx"

Set nextrec = Sheets("BEVEST_LIST").Range("A1048576").End(xlUp).Offset(1, 0)

nextrec = ConfNr
nextrec.Offset(0, 1) = Custname
nextrec.Offset(0, 2) = Prod
nextrec.Offset(0, 3) = Supplname
nextrec.Offset(0, 4) = Salesp
nextrec.Offset(0, 5) = Email
nextrec.Offset(0, 7) = Now

Sheets("BEVEST_LIST").Hyperlinks.Add anchor:=nextrec.Offset(0, 6), Address:=Path & fname & ".pdf"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan