Egbert12345
Gebruiker
- Lid geworden
- 13 dec 2010
- Berichten
- 508
Beste forummers, vorig jaar heeft Edmoor mij perfect geholpen met het maken van een macro in VBA waarbij ik gepersonaliseerde e-mails kan versturen. Voorheen werkte ik met Windows Live Mail, maar inmiddels met Outlook 2016. Ik kan mij herinneren dat Edmoor in eerste instantie uitging van Outlook, maar dat later heeft aangepast naar Windows Live Mail. Nu kan ik dat oorspronkelijke bericht niet meer terugvinden en daarom assistentie gevraagd. Onderstaand de code die ik gebruikte (let s.v.p. niet op de verwijzingen naar de werkbladen). Kunnen jullie aangeven wat ik moet aanpassen zodat de macro werkt met Outlook 2016?
m.vr.gr Egbert
Sub CDO_Mail_Small_Text_LEDEN()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Application.ScreenUpdating = False
Sheets("verzendblad LEDEN").Select
eindebereik = Sheets("verzendblad LEDEN").Range("W25") ' totaal aantal records bepalen
' regels geel kleuren en controlewaarde opvoeren
Sheets("e-mail LEDEN").Select
Rows("2:" & eindebereik & "").Interior.Color = 65535
Range("AK2") = "1"
Range("AK2").Copy: Range("AK3:AK" & eindebereik & "").Select: ActiveSheet.Paste
Range("A1").Select: Application.CutCopyMode = False
Sheets("verzendblad LEDEN").Select
For A = 2 To eindebereik
On Error GoTo einde_macro
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.kpnmail.nl"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With
Sheets("e-mail LEDEN").Rows(A).Copy
Range("A34").Select
Selection.PasteSpecial Paste:=xlPasteValues
aan_email = Sheets("verzendblad LEDEN").Range("P34"):
onderwerp = Sheets("verzendblad LEDEN").Range("H20"):
afzender_email = Sheets("verzendblad LEDEN").Range("C21"):
BCC_email = Sheets("verzendblad LEDEN").Range("C20")
aanhef = Sheets("verzendblad LEDEN").Range("B1")
omschrijving1 = Sheets("verzendblad LEDEN").Range("B3"):
omschrijving2 = Sheets("verzendblad LEDEN").Range("B4"):
omschrijving3 = Sheets("verzendblad LEDEN").Range("B5"):
omschrijving4 = Sheets("verzendblad LEDEN").Range("B6"):
omschrijving5 = Sheets("verzendblad LEDEN").Range("B7")
omschrijving6 = Sheets("verzendblad LEDEN").Range("B9"):
omschrijving7 = Sheets("verzendblad LEDEN").Range("B10"):
omschrijving8 = Sheets("verzendblad LEDEN").Range("B12"):
omschrijving9 = Sheets("verzendblad LEDEN").Range("B13"):
omschrijving10 = Sheets("verzendblad LEDEN").Range("B14")
strbody = aanhef & vbNewLine & vbNewLine & _
omschrijving1 & vbNewLine & _
omschrijving2 & vbNewLine & _
omschrijving3 & vbNewLine & _
omschrijving4 & vbNewLine & _
omschrijving5 & vbNewLine & vbNewLine & _
omschrijving6 & vbNewLine & _
omschrijving7 & vbNewLine & vbNewLine & _
omschrijving8 & vbNewLine & _
omschrijving9 & vbNewLine & _
omschrijving10
With iMsg
Set .Configuration = iConf
.To = aan_email
' .CC = ""
.BCC = BCC_email
.From = afzender_email
.Subject = onderwerp
.TextBody = strbody
.Send
End With
Sheets("e-mail LEDEN").Rows(A).Interior.Pattern = xlNone
Sheets("e-mail LEDEN").Cells(A, 37) = 0
einde_macro:
Next
Application.CutCopyMode = False
If Sheets("verzendblad LEDEN").Range("W29") > 0 Then MsgBox "Er zijn records waarbij de e-mail niet is verstuurd omdat er een fout in het e-mailadres zit. De betreffende regel is geel gearceerd.": Sheets("e-mail LEDEN").Select: Range("A2").Select: End
Application.ScreenUpdating = True
Sheets("verzendblad LEDEN").Select
End Sub
m.vr.gr Egbert
Sub CDO_Mail_Small_Text_LEDEN()
Dim iMsg As Object
Dim iConf As Object
Dim strbody As String
Dim Flds As Variant
Application.ScreenUpdating = False
Sheets("verzendblad LEDEN").Select
eindebereik = Sheets("verzendblad LEDEN").Range("W25") ' totaal aantal records bepalen
' regels geel kleuren en controlewaarde opvoeren
Sheets("e-mail LEDEN").Select
Rows("2:" & eindebereik & "").Interior.Color = 65535
Range("AK2") = "1"
Range("AK2").Copy: Range("AK3:AK" & eindebereik & "").Select: ActiveSheet.Paste
Range("A1").Select: Application.CutCopyMode = False
Sheets("verzendblad LEDEN").Select
For A = 2 To eindebereik
On Error GoTo einde_macro
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
iConf.Load -1 ' CDO Source Defaults
Set Flds = iConf.Fields
With Flds
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.kpnmail.nl"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With
Sheets("e-mail LEDEN").Rows(A).Copy
Range("A34").Select
Selection.PasteSpecial Paste:=xlPasteValues
aan_email = Sheets("verzendblad LEDEN").Range("P34"):
onderwerp = Sheets("verzendblad LEDEN").Range("H20"):
afzender_email = Sheets("verzendblad LEDEN").Range("C21"):
BCC_email = Sheets("verzendblad LEDEN").Range("C20")
aanhef = Sheets("verzendblad LEDEN").Range("B1")
omschrijving1 = Sheets("verzendblad LEDEN").Range("B3"):
omschrijving2 = Sheets("verzendblad LEDEN").Range("B4"):
omschrijving3 = Sheets("verzendblad LEDEN").Range("B5"):
omschrijving4 = Sheets("verzendblad LEDEN").Range("B6"):
omschrijving5 = Sheets("verzendblad LEDEN").Range("B7")
omschrijving6 = Sheets("verzendblad LEDEN").Range("B9"):
omschrijving7 = Sheets("verzendblad LEDEN").Range("B10"):
omschrijving8 = Sheets("verzendblad LEDEN").Range("B12"):
omschrijving9 = Sheets("verzendblad LEDEN").Range("B13"):
omschrijving10 = Sheets("verzendblad LEDEN").Range("B14")
strbody = aanhef & vbNewLine & vbNewLine & _
omschrijving1 & vbNewLine & _
omschrijving2 & vbNewLine & _
omschrijving3 & vbNewLine & _
omschrijving4 & vbNewLine & _
omschrijving5 & vbNewLine & vbNewLine & _
omschrijving6 & vbNewLine & _
omschrijving7 & vbNewLine & vbNewLine & _
omschrijving8 & vbNewLine & _
omschrijving9 & vbNewLine & _
omschrijving10
With iMsg
Set .Configuration = iConf
.To = aan_email
' .CC = ""
.BCC = BCC_email
.From = afzender_email
.Subject = onderwerp
.TextBody = strbody
.Send
End With
Sheets("e-mail LEDEN").Rows(A).Interior.Pattern = xlNone
Sheets("e-mail LEDEN").Cells(A, 37) = 0
einde_macro:
Next
Application.CutCopyMode = False
If Sheets("verzendblad LEDEN").Range("W29") > 0 Then MsgBox "Er zijn records waarbij de e-mail niet is verstuurd omdat er een fout in het e-mailadres zit. De betreffende regel is geel gearceerd.": Sheets("e-mail LEDEN").Select: Range("A2").Select: End
Application.ScreenUpdating = True
Sheets("verzendblad LEDEN").Select
End Sub