Email versturen via Excel (ook als PDF)
Het is mogelijk om vanuit Excel een email te versturen. Dit wordt hieronder uitgelegd op verschillende manieren, kies er een uit die handig is voor het gebruik van jouw wensen.
Emails versturen via Excel is alleen mogelijk als er ook Microsoft Office Outlook geïnstalleerd is. Wat eigenlijk logisch is omdat het beide Office programma’s zijn. Als afzender wordt je standaard email adres in Outlook gebruikt.
Vooraf is het handig om te weten hoe je het Ontwikkelaars tabblad krijgt en hoe je een macro toevoegt.
Email versturen
Als je een gewone email wilt versturen vanuit Excel dan kan je deze macro gebruiken.
Open de VBA editor, sneltoets ALT + F11, en maak daar een nieuwe Module aan. Plak daar de volgende code:Sub Email()
Err.Number = 0
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err.Number > 0 Then
Set OutApp = CreateObject("Outlook.Application")
Err.Clear
End If
On Error GoTo 0
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "info@excelweb.nl"
.CC = ""
.BCC = ""
.Subject = "Verstuur email via Excel"
.HTMLBody = "Het is gelukt"
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Werkblad als PDF meesturen
Open de VBA editor, sneltoets ALT + F11, en maak daar een nieuwe Module aan.
Plak daar de volgende code:
Sub PDFEmail()
Pad = "Z:\VCB\Financiele administratie\Facturen\VCB\"
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "Voorblad" Then
If Dir(Pad & sh.Name & ".pdf") <> "" Then
MsgBox "Het bestand: " & sh.Name & ".pdf bestaat reeds"
Else
sh.ExportAsFixedFormat 0, Pad & sh.Name, , , , , OpenAfterPublish:=False
Err.Number = 0
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err.Number > 0 Then
Set OutApp = CreateObject("Outlook.Application")
Err.Clear
End If
On Error GoTo 0
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "info@excelweb.nl"
.CC = ""
.BCC = ""
.Subject = "Verstuur email via Excel"
.HTMLBody = "Het is gelukt!"
.Attachments.Add Pad & sh.Name & ".pdf"
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
End If
End If
Next sh
End Sub
Vervolgens gaan we hier een ActiveX besturingselement voor aanmaken.
Ga op het lint naar het tabblad Ontwikkelaars, selecteer hier Invoegen en kies voor knop.
Koppel hier de zojuist aangemaakte module PDFEmail aan.
Goedenavond,
Ik heb een macro geknutseld om vanuit excel een PDF te versturen .
Maar loop tegen het volgende probleem aan: In de body van de mail kom een aanhef en een bericht dat de “factuur als bijlage is toegevoegd” Nu wil ik mij handtekening plaatsen ( is een png bestand) maar dit krijg ik niet voor elkaar. Of de handtekening komt in de mail of de aanhef komt in de mail . Aanhef en handtekening krijg ik niet gezamenlijk in de mail. Alvast bedankt voor de aandacht
Om een handtekening (een PNG) toe te voegen aan de e-mail body in de macro, kunnen we gebruikmaken van het HTML-formaat van de e-mailbody.
We kunnen een HTML-afbeeldingstag gebruiken om de handtekening in te sluiten in de e-mailtekst. Hier is de aangepaste code:
Sub Email()
Err.Number = 0
On Error Resume Next
Set OutApp = GetObject(, “Outlook.Application”)
If Err.Number > 0 Then
Set OutApp = CreateObject(“Outlook.Application”)
Err.Clear
End If
On Error GoTo 0
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
‘ Pad naar de PNG-handtekening. Pas dit pad aan naar jouw bestand.
Dim signaturePath As String
signaturePath = “C:\Pad\Naar\Handtekening.png”
With OutMail
.To = “info@excelweb.nl”
.CC = “”
.BCC = “”
.Subject = “Verstuur email via Excel”
‘ Definieer de e-mail body in HTML-formaat met de handtekening
.HTMLBody = “Beste,
” & _
“Hierbij ontvangt u de factuur als bijlage. ” & _
“Bij vragen kunt u contact met mij opnemen.
” & _
“Met vriendelijke groet,
” & _
”
“
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Zorg ervoor dat je het juiste pad naar de PNG-handtekening opgeeft in de variabele signaturePath. Pas ook de e-mailbody aan naar jouw behoeften.
Deze code voegt de handtekening toe onder de “Met vriendelijke groet” regel in de e-mail. De handtekening wordt weergegeven als een afbeelding onderaan de e-mail.