• 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.

Foutmelding in code

jimk

Gebruiker
Lid geworden
13 feb 2024
Berichten
21
Goedemiddag,

Ik blijf een foutmelding krijgen met de onderstaande code, de regel .attachments.add blijft hij geel aangeven in de code.
Kan iemand mij vertellen wat ik hier fout in doe?
Ik heb een documentnummer staan in cell B8 vandaar de verwijzing.
Alvast bedankt!


Code:
Sub Mail_met_pdf()


Dim outlookApp As Object
Dim emailItem As Object
Dim emailSubject As String
Dim emailBody As String
Dim newFilename As String


'Bestandnaam aanmaken


newFilename = Range("B8").Value & ".pdf"


'PDF aanmaken


ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=newFilename, _
    Quality:=xlQualityStandard, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False


Set outlookApp = CreateObject("Outlook.Application")
Set emailItem = outlookApp.CreateItem(0)


'Email opmaken


With emailItem
    .To = ""
    .Subject = Range("B8")
    .Body = ""
    .Attachments.Add newFilename
    .Display ' of .Send
    End With
    


End Sub
 
Als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is.
Zet ook .Value achter .Subject = Range("B8")
 
En kijk eens naar de lengte van je code; denk je echt dat het daarmee duidelijker wordt?
Code:
Sub Mail_met_pdf()
emailItem As Object
Dim emailSubject As String, emailBody As String, newFilename As String

    'Bestandnaam aanmaken
    newFilename = Range("B8").Value & ".pdf"
    'PDF aanmaken
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=newFilename, _
        Quality:=xlQualityStandard, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Set emailItem = CreateObject("Outlook.Application").CreateItem(0)
    'Email opmaken
    With emailItem
        .To = ""
        .Subject = Range("B8").Value
        .Body = ""
        .Attachments.Add newFilename
        .Display ' of .Send
    End With

End Sub
Jouw code levert wél een scrollarm op; wellicht ben je huisarts met te weinig patiënten :).
 
Als je zegt een foutmelding te krijgen, vertel er dan ook bij welke dat is.
Zet ook .Value achter .Subject = Range("B8")
Hij geeft aan , Fout -2147024894 tijdens uitvoering:
Kan dit bestand niet vinden. controleer of het pad en de bestandsnaam juist zijn,

Als ik dan naar foutopsporing ga zie ik de regel van .attachments.add geel worden
 
En kijk eens naar de lengte van je code; denk je echt dat het daarmee duidelijker wordt?
Code:
Sub Mail_met_pdf()
emailItem As Object
Dim emailSubject As String, emailBody As String, newFilename As String

    'Bestandnaam aanmaken
    newFilename = Range("B8").Value & ".pdf"
    'PDF aanmaken
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=newFilename, _
        Quality:=xlQualityStandard, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Set emailItem = CreateObject("Outlook.Application").CreateItem(0)
    'Email opmaken
    With emailItem
        .To = ""
        .Subject = Range("B8").Value
        .Body = ""
        .Attachments.Add newFilename
        .Display ' of .Send
    End With

End Sub
Jouw code levert wél een scrollarm op; wellicht ben je huisarts met te weinig patiënten :).
Als ik zou weten hoe ik dit korter kon maken had ik dat vast en zeker gedaan.
 
Dan is de string newFilename dus niet correct.
Staat het pad er wel bij?

Voorbeeld:
Code:
Sub Mail_met_pdf()
    newFilename = ThisWorkbook.Path & "\" & Range("B8").Value & ".pdf"
    ActiveSheet.ExportAsFixedFormat 0, newFilename
    
    Set outlookApp = CreateObject("Outlook.Application")
    With outlookApp.CreateItem(0)
        .To = "a@a.com"
        .Subject = Range("B8").Value
        .Body = ""
        .Attachments.Add newFilename
        .Display ' of .Send
    End With
End Sub
 
Laatst bewerkt:
Dan is de string newFilename dus niet correct.
Staat het pad er wel bij?

Dan is de string newFilename dus niet correct.
Staat het pad er wel bij?

Voorbeeld:
Code:
Sub Mail_met_pdf()
    newFilename = ThisWorkbook.Path & "\" & Range("B8").Value & ".pdf"
    ActiveSheet.ExportAsFixedFormat 0, newFilename
   
    Set outlookApp = CreateObject("Outlook.Application")
    With outlookApp.CreateItem(0)
        .To = "a@a.com"
        .Subject = Range("B8").Value
        .Body = ""
        .Attachments.Add newFilename
        .Display ' of .Send
    End With
End Sub

Beste edmoor,

Dank voor je reactie, het voorbeeld wat je erin had gezet werkt perfect.
Het was inderdaad het path wat ontbrak.
 
Uiteindelijk:

CSS:
Sub Mail_met_pdf()
    newFilename = ThisWorkbook.Path & "\" & Range("B8") & ".pdf"
    ActiveSheet.ExportAsFixedFormat 0, newFilename
    
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "a@a.com"
        .Subject = Range("B8")
        .Body = ""
        .Attachments.Add newFilename
        .Send
    End With
End Sub
 
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan