Bijlage meesturen via Excel VBA

Status
Niet open voor verdere reacties.

royb73

Gebruiker
Lid geworden
19 sep 2012
Berichten
228
Beste,

Ik heb een code in VBA waarmee ik een email genereer vanuit Excel. Vervolgens moet ik handmatig een rapport toevoegen in de mail.

Code:
Public Sub MailAccept()
    Set shtGegevens = Worksheets("Gegevens")
    
    With shtGegevens
        If Not .Range("C4").Value = vbNullString Then
            OpdrachtContact = .Range("C4").Value
        Else
            MsgBox "De contactpersoon is niet ingevuld!" & vbCrLf & "Vul dit in en probeer opnieuw!", vbOKOnly, "Email"
            Exit Sub
        End If
        
        If Not .Range("C6").Value = vbNullString Then
            sTo = .Range("C6").Value
        Else
            MsgBox "Het emailadres van de contactpersoon is niet ingevuld!" & vbCrLf & "Vul dit in en probeer opnieuw!", vbOKOnly, "Email"
            Exit Sub
        End If
        
    End With
    
    sSubject = Opdrachtnummer & " " & "Oplevering meetcertificaat " & McName & " " & OpdrachtAdres & " te " & OpdrachtStad
    
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(olMailItem)
    
    olMail.To = sTo
    olMail.Subject = sSubject
    
        SigString = Environ("appdata") & _
                "\Microsoft\Signatures\RPS Default Signature.htm"

    On Error Resume Next
    
    strbody = "<p style='font-family:arial;font-size:13'>" & "Geachte " & OpdrachtContact & ",<br>" & _
            "<br> Bijgaand treft u het definitieve meetcertificaat " & McName & " " & OpdrachtAdres & " te " & OpdrachtStad & " aan met bijbehorende tekeningen.<br>" & _
            "<br> Mocht u naar aanleiding hiervan nog vragen en/of opmerkingen hebben, dan kunt u contact opnemen met " & ProjectLeider & " via 012-345678.<br>" & _
            "<br> Met vriendelijke groet,<br>"
            
    olMail.HTMLBody = strbody & "<br>" & Signature
    olMail.Display
    
   
    If Not olApp Is Nothing Then Set olApp = Nothing
End Sub

Bij dat mail moet ik steeds handmatig een rapport (PDF) als bijlage toevoegen.

Mijn Excel bestand staat in de hoofddirectory C:\hoofdmap\Excel.xlsm
Het rapport staat in map C:\hoofdmap\4 Opgeleverd aan OG\Concept\xxxxxx_Concept.PDF. Het bestandsnaam bevat de tekst "concept".PDF

Wie kan mij helpen om het rapport automatisch toegevoegd te krijgen via VBA?

Alvast bedankt.

MVg

Roy
 
Daar kan je olMail.Attachments.Add "C:\hoofdmap\4 Opgeleverd aan OG\Concept\xxxxxx_Concept.PDF" voor gebruiken.
 
Hoi Edmoor,

De x van xxxxxx_Concept.PDF is variabel.

Hoe kan ik het zodanig krijgen dat hij zoekt naar het bestand met "concept" erin?

Groeten,

Roy.
 
Hij gaat niet zoeken, je zal zelf de bestandsnaam moeten samenstellen. Bijvoorbeeld als xxxxxx in cel A1 staat:
Bestand = "C:\hoofdmap\4 Opgeleverd aan OG\Concept\" & Range("A1") & "_Concept.PDF"

En dan:
olMail.Attachments.Add Bestand
 
Laatst bewerkt:
Ok zal het proberen. xxxxx staat voor het rapportnummer en die staat inderdaad aangegeven in een cel.

Groeten,

Roy.
 
Edmoor,

Het bestand staat in de desbetreffende directory, echter krijg ik het niet toegevoegd.

Code:
 Dim Bestand As String
 
    Bestand = ActiveWorkbook.Path & " \4 Opgeleverd aan OG\Concept\" & McName & "_concept.pdf"
 
   
    If Not Dir(Bestand) = vbNullString Then
        olMail.Attachments.Add Bestand
    Else
                MsgBox ("Kan de locatie: " & Bestand & " niet vinden!")
    End If
 
En hoe ken je de waarde aan McName dan toe ?
 
Daar kan ik niks van zeggen, de code is goed. Wat is de inhoud van McName?
Maak er eens gewoon dit van:
Code:
Dim Bestand As String
 
    Bestand = ActiveWorkbook.Path & " \4 Opgeleverd aan OG\Concept\" & McName & "_concept.pdf"
    MsgBox Bestand
    olMail.Attachments.Add Bestand

En kijk wat er dan gebeurd.
Als het niet goed gaat plaats dan een afdruk van die messagebox hier.
 
Laatst bewerkt:
Warme Bakkertje,

McName is het rapport nummer die op een vaste cel staat.

Code:
        If Not .Range("C25").Value = vbNullString Then
            McName = .Range("C25").Value
        Else
            MsgBox "Mc nummer is niet ingevuld!" & vbCrLf & "Vul die in en probeer opnieuw!", vbOKOnly, "McName"
            Exit Sub
        End If
 
En dat staat dan wel weer in het With shtGegevens blok?
 
Edmoor,

Het bestand staat wel in desbetreffende map. De email wordt wel gegenereerd, echter voegt hij de bijlage niet toe.

Groeten,
 
Dat was niet mijn vraag. En doe eerst wat ik zei in #8 en laat dan sowieso zien wat er in die messagebox staat.
 
Je hebt hier nog steeds de spatie voor \4 staan die ik in #4 al had verwijderd:
Code:
activeWorkbook.Path & " \4 Opgeleverd aan OG\Concept\" & McName & "_concept.pdf"

Dat gaat uiteraard niet goed omdat je dan een niet bestaande map gebruikt en McName dus leeg blijft.
 
Laatst bewerkt:
Edmoor,

Met of zonder spatie krijg ik dezelfde waarde bij "MsgBox Bestand"
 
Maar ik zie nog steeds geen afdruk van die messagebox waar ik al 2x om vroeg.
 
Het bestand bestaat en staat in de directory D:\test\4 Opgeleverd aan OG\Concept\Mc1500870c_Hv1_concept
 
En zonder .pdf er achter vind hij dat bestand dus niet.
 
Daar staat dus nog steeds die spatie in.
Spatie.jpg
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan