Mails versturen met bijlage via excel

Status
Niet open voor verdere reacties.

dendalle

Gebruiker
Lid geworden
21 mrt 2014
Berichten
25
Beste,

In bijlage heb ik een exel-bestand opgenomen van waaruit ik mails zou willen versturen. Ik vermoed dat dit moet lukken met VBA-code, maar zelf ben ik niet 100% thuis in VBA.

Bedoeling zou zijn dat wanneer ik bvb cel E5 selecteer, er een mail wordt verstuurd aan het mail adres in Kolom B. Deze mail zou dan het bestand in kolom C moeten bevatten als bijlage en in de body de tekst in cel C2.
Ter info, de nodige bestanden zouden in dezelfde map staan waarin de excel staat.

Als de mail werd verstuurd zou er dan cel E5 "Ja" moeten worden vermeld.

Is dit mogelijk met VBA-code of is dit onbegonnen werk?

Mocht het tevens mogelijk zijn, zou ik er ook een knop willen invoegen om met 1 klik alle mails in de lijst te verzenden.

Mocht er iemand mij op weg kunnen zetten hiermee zou dit fantastisch zijn!

software die momenteel wordt gebruikt is office 2013 (Excel en Outlook)

Mvg,
dendalleBekijk bijlage Mailing via excel.xlsx
 
Heb je ook al gezocht op dit forum? Die vraag is pas 100x een antwoord op gegeven ofzo.
Niet rot bedoeld hoor, als je er niet uitkomt kunnen we er altijd nog mee doorgaan :)
 
ik vond niet meteen een antwoord op de verschillende zaken die ik wou, maar ik zal nog even kijken en al proberen om de VBA te schrijven. Mocht het niet lukken laat ik het nog weten.
 
Het is me voorlopig al deels gelukt om dit in elkaar te steken.

Nu wou ik nog zoals in mijn eerste post vermeld is, de macro laten uitvoeren wanneer een cel in kolom E wordt uitgevoerd. En dus enkel als er "Versturen" staat.

Ik heb in vroegere excel-bestanden ook een dergelijke codering, maar het lukt me blijkbaar niet om deze te combineren met de code voor het versturen van de mail.

Kan iemand me hierbij helpen? Verder merkte ik op dat wanneer ik de mail ineens wil laten versturen, er in outlook een melding komt waarbij ik de actie moet toestaan. Valt dit te omzeilen?

Verder nog een vraag m.b.t. de body van de mail. In outlook is er ook een standaard handtekening voorzien bij het aanmaken van een mail. Via deze macro komt deze niet mee in de mail. Is hiervoor ook een code om de handtekening er onder te krijgen?

Alvast bedankt!
Voorbeelbestand: Bekijk bijlage Mailing via excel -.xlsm
 
Mocht niemand me voor zijn dan zal ik er vanavond naar kijken maar de kans is groot dat iemand anders dit eerder doet :)

Voor een grafische handtekening moet je overigens HTML gebruiken en dan niet in de .Body plaatsen maar in de .HTMLBody. Ook moet je dan zowel .Display als .Send gebruiken en ook in die volgorde.
 
Laatst bewerkt:
Een van de mogelijkheden.

Code:
Sub Mail_versturen()
Dim OutApp As Object
Dim OutMail As Object
Dim ar, j
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With Sheets("Blad1")
    ar = .ListObjects(1).DataBodyRange
    For j = 1 To UBound(ar)
        If LCase(ar(j, 5)) = "versturen" Then
            On Error Resume Next
            With OutMail
                .to = ar(j, 2)
                .Subject = .Cells(1, "C")
                .Body = .Cells(2, "C")
                .Attachments.Add ("C:\Users\dendalle\Desktop\" & ar(j, 3))
                .Display
             End With
            ar(j, 5) = "verzonden"
        End If
    Next j
    .ListObjects(1).DataBodyRange = ar
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
 
Een van de mogelijkheden.

Code:
Sub Mail_versturen()
Dim OutApp As Object
Dim OutMail As Object
Dim ar, j
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With Sheets("Blad1")
    ar = .ListObjects(1).DataBodyRange
    For j = 1 To UBound(ar)
        If LCase(ar(j, 5)) = "versturen" Then
            On Error Resume Next
            With OutMail
                .to = ar(j, 2)
                .Subject = .Cells(1, "C")
                .Body = .Cells(2, "C")
                .Attachments.Add ("C:\Users\dendalle\Desktop\" & ar(j, 3))
                .Display
             End With
            ar(j, 5) = "verzonden"
        End If
    Next j
    .ListObjects(1).DataBodyRange = ar
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Ik heb deze code in de vba-code gezet, maar dit lijkt toch niet te werken. Er gebeurt niets wanneer je in bvb cel E6 klikt.
Moet de code ergens anders worden geplaatst?
 
Voor onder de knop om alles in 1 keer te versturen.

Code:
Sub Mail_versturen()
With Sheets("Blad1")
    ar = .ListObjects(1).DataBodyRange
    On Error Resume Next
    For j = 1 To UBound(ar)
        If LCase(ar(j, 5)) = "versturen" Then
            With CreateObject("Outlook.Application").CreateItem(0)
                .to = ar(j, 2)
                .Subject = Sheets("Blad1").[C1]
                .Body = Sheets("Blad1").[C2]
                .Attachments.Add ("C:\Users\dendalle\Desktop\" & ar(j, 3))
                .Display
             End With
            ar(j, 5) = "verzonden"
        End If
    Next j
    .ListObjects(1).DataBodyRange = ar
End With
End Sub

Voor een dubbelklik in kolom E
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, ListObjects(1).DataBodyRange.Columns(5)) Is Nothing Then
    With CreateObject("Outlook.Application").CreateItem(0)
        .to = Target.Offset(, -3)
        .Subject = [C1]
        .Body = [C2]
        .Attachments.Add ("C:\Users\dendalle\Desktop\" & Target.Offset(, -2))
        .Display
    End With
    Target = "verzonden"
    Cancel = True
End If
End Sub
 

Bijlagen

Enorm bedankt VenA,

Deze werken perfect!

Ik probeer nog om de handtekening te integreren, mocht het niet lukken laat ik nog wel iets weten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan