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

Opgelost Mail versturen vanuit Excel met zowel bijlage in .pdf ÉN .xlsm

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Penning1

Gebruiker
Lid geworden
22 sep 2011
Berichten
15
Beste lezer,

Ik heb een werkende code geschreven waarbij een mail wordt klaargezet waarin een bijlage als .pdf wordt weergegeven. Echter wil ik deze bijlage ook als excelbestand met macro's (dus .xlsm) meesturen in deze zelfde mail.
Voor de duidelijkheid, de ontvanger ontvangt dus zowel een .pdf bestand als de .xlsm bestand (om eventueel te bewerken).

Hoe kan ik deze (extra) .xlsm bestand toevoegen in mijn macro (macro hieronder beschreven)?
Naam van bestand mag gelijk zijn als .pdf bestandsnaam.

Bij voorbaat dank!

Code:
Sub Rechthoekafgerondehoeken1_Klikken()
 Dim Bestand As String
    Dim OutApp As Object
    Dim OutMail As Object
    
    Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & Range("AR11") & Range("AS14") & ".pdf"
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Bestand
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = Range("AR32").Value
        .CC = Range("AR28").Value
        .BCC = ""
        .Subject = Range("AR3").Value
        .Body = Range("AU4").Value
        .Attachments.Add Bestand
        .Display
    End With
    Kill Bestand
End Sub
 
Zo:
Code:
Attachments.Add Bestand
Attachments.Add ThisWorkbook.FullName
 
Dank je Edmoor! Hij werkt.

Nog wel 1 additionele vraag: Hoe krijg ik nu voor dit .xlsm bestand nu wel dezelfde benaming als mijn .pdf bestand, dus:
"\" & ActiveSheet.Name & Range("AR11") & Range("AS14") & ".pdf" (logischerwijs nu natuurlijk zonder de .pdf
<< ik dacht dit door 'fullname' aan te passen, maar ik kom er zo snel niet uit.>>
 
Zo bijvoorbeeld:
Code:
Split(ThisWorkbook.Name, ".")(0)

Of, als je werkboeknaam meerdere punten bevat:
Code:
Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5)
 
Laatst bewerkt:
Edmoor,
Ik heb het geprobeerd, maar kom er helaas niet uit.
Mijn .pdf heeft nu als naam: 'Urenlijst 2025 - W8".pdf. Waarbij Urenlijst 2025 uit Cel AR11 wordt gehaald, -W8 uit Cel AS14.
Maar hoe krijg ik het nu voor elkaar om dus deze benaming aan mijn .xlsm te geven?
En hoe schrijf ik deze volledige funcite uit?
Attachments.Add Split(ThisWorkbook.Name, Range ("AR11") & Range ("AS14")?

Ik hoor het graag.
 
Je moet er natuurlijk wel voor zorgen dat het bestand dan ook bestaat:
Code:
Sub Rechthoekafgerondehoeken1_Klikken()
    Dim Bestand1 As String
    Dim Bestand2 As String
    Dim OutApp As Object
    Dim OutMail As Object
 
    Bestand1 = Environ("TEMP") & "\" & ActiveSheet.Name & Range("AR11") & Range("AS14") & ".pdf"
    Bestand2 = Left(Bestand1, Len(Bestand1) - 4) & ".xlsm"
    ActiveSheet.ExportAsFixedFormat 0, Bestand1
    ThisWorkbook.SaveCopyAs Bestand2
 
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = Range("AR32").Value
        .CC = Range("AR28").Value
        .Subject = Range("AR3").Value
        .Body = Range("AU4").Value
        .Attachments.Add Bestand1
        .Attachments.Add Bestand2
        .Display
    End With
    Kill Bestand1
    Kill Bestand2
End Sub
 
Laatst bewerkt:
Beste Edmoor,

Helaas krijg ik een foutcode en deze snap ik niet. Want de file waarin ik werk is opgeslagen, en ik kan de knop niet gebruiken buiten dat dit bestand open staat?

reagerend op je opmerking: Ik ben helaas nog niet zo kundig met VBA dat ik dan op de hoogte ben dat ik ervoor moet zorgen dat het bestand bestaat. Dus dank voor je uitleg.

Zie foutmelding in de bijlage.
 

Bijlagen

  • Foutmelding_VBA.jpg
    Foutmelding_VBA.jpg
    125,3 KB · Weergaven: 6
Plaats dan je bestand hier, uiteraard ontdaan van privacy gevoelige gegevens.
 
Beste Edmoor,

Dank je voor je snelle reactie. Maar ik ben er volgens mij achter. Ik heb gisteren een kolom toegevoegd, waardoor de celverwijzingen niet meer kloppen. Dus dit ga ik even bekijken.
Daarnaast wil ik zelf ook altijd proberen om er wijzer van te worden (ipv het bestand te plaatsen en door anderen/jouw de oplossing te verkijgen - wat overigens met alle waardering en respect is!).
 
Prima.
En bij vragen weet je waar je moet zijn :)
 
Beste Edmoor,

Heb de code nu werkend! zoals jij had beschreven. Dus dank daarvoor.
Een vraag voor mezelf ter lering en vermaak: mocht ik nu betsand2 omschreven hebben als:
Bestand2 = Environ("TEMP") & "\" & ActiveSheet.Name & Range("AS12") & Range("AT15") & ".xlsm"
was ik er dan ook gekomen?
Nogmaals dank voor je snelle en punctuele reacties!
 
Uiteraard kan dat ook.
Maar als dat qua bladnaam en cel adressen gelijk is aan die voor bestand1 dan is dat overbodig.
Mocht het ooit wijzigen dan moet je dat op 2 plaatsen aanpassen en in mijn voorbeeld maar op 1 plaats.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan