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

macro mails verzenden met bijlage

Status
Niet open voor verdere reacties.

SUVERMO

Gebruiker
Lid geworden
22 dec 2019
Berichten
481
Na wat opzoekwerk op het forum en het web is de macro “mails_versturen” gemaakt, deze werkt prima, maar
Kan iemand een oplossing geven voor volgende
Om als de groene bereiken leeg zijn, geen foutmelding te geven
In MsgBox voor de rode 16 de waarde van cel A1 te gebruiken
In de MsgBox nee i.p.v ja actief te maken
Code:
Sub mails_versturen()
E_MAILADRES = Range("E_MAILADRES").Value
E_MAILONDERWERP = Range("E_MAILONDERWERP").Value
    BIJLAGE_1 = Range("[COLOR="#00FF00"]BIJLAGE_1[/COLOR]").Value
    BIJLAGE_2 = Range("[COLOR="#00FF00"]BIJLAGE_2[/COLOR]").Value
    BIJLAGE_3 = Range("[COLOR="#00FF00"]BIJLAGE_3[/COLOR]").Value
    BIJLAGE_4 = Range("[COLOR="#00FF00"]BIJLAGE_4[/COLOR]").Value
    BIJLAGE_5 = Range("[COLOR="#00FF00"]BIJLAGE_5[/COLOR]").Value
    BIJLAGE_6 = Range("[COLOR="#00FF00"]BIJLAGE_6[/COLOR]").Value
    BIJLAGE_7 = Range("[COLOR="#00FF00"]BIJLAGE_7[/COLOR]").Value
    BIJLAGE_8 = Range("[COLOR="#00FF00"]BIJLAGE_8[/COLOR]").Value
    BIJLAGE_9 = Range("[COLOR="#00FF00"]BIJLAGE_9[/COLOR]").Value
    BIJLAGE_10 = Range("[COLOR="#00FF00"]BIJLAGE_10[/COLOR]").Value
tekst = Range("E_MAILTEKST")
For j = 1 To UBound(tekst)
E_MAILTEKST = E_MAILTEKST & "<tr><td>" & Join(Application.Index(tekst, j), "</td><td>") & "</td></tr>"
Next
E_MAILTEKST = E_MAILTEKST & "</table><P></P><P></P>"
With CreateObject("Outlook.Application").CreateItem(0)
.To = E_MAILADRES
.Subject = E_MAILONDERWERP
.HTMLBody = E_MAILTEKST
    .attachments.Add BIJLAGE_1
   '.attachments.Add BIJLAGE_2
   '.attachments.Add BIJLAGE_3
   '.attachments.Add BIJLAGE_4
   '.attachments.Add BIJLAGE_5
   '.attachments.Add BIJLAGE_6
   '.attachments.Add BIJLAGE_7
   '.attachments.Add BIJLAGE_8
   '.attachments.Add BIJLAGE_9
   '.attachments.Add BIJLAGE_10
.Send
If vbNo = MsgBox("er is een voorbeeld naar uw mail-adres verstuurd, is deze goed?", vbYesNo) Then Exit Sub
If vbNo = MsgBox("mogen er [COLOR="#FF0000"]16[/COLOR] mails verzonden worden?", vbYesNo) Then Exit Sub
End With
End Sub
 
Laatst bewerkt:
Wat je bedoelt met "In de MsgBox nee i.p.v ja actief te maken" weet ik niet, maar kijk eens naar dit:
Code:
Sub mails_versturen()
    E_MAILADRES = Range("E_MAILADRES").Value
    E_MAILONDERWERP = Range("E_MAILONDERWERP").Value
    BIJLAGE_1 = Range("BIJLAGE_1").Value
    BIJLAGE_2 = Range("BIJLAGE_2").Value
    BIJLAGE_3 = Range("BIJLAGE_3").Value
    BIJLAGE_4 = Range("BIJLAGE_4").Value
    BIJLAGE_5 = Range("BIJLAGE_5").Value
    BIJLAGE_6 = Range("BIJLAGE_6").Value
    BIJLAGE_7 = Range("BIJLAGE_7").Value
    BIJLAGE_8 = Range("BIJLAGE_8").Value
    BIJLAGE_9 = Range("BIJLAGE_9").Value
    BIJLAGE_10 = Range("BIJLAGE_10").Value
    tekst = Range("E_MAILTEKST")
    
    For j = 1 To UBound(tekst)
        E_MAILTEKST = E_MAILTEKST & "<tr><td>" & Join(Application.Index(tekst, j), "</td><td>") & "</td></tr>"
    Next
    E_MAILTEKST = E_MAILTEKST & "</table><P></P><P></P>"
    
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = E_MAILADRES
        .Subject = E_MAILONDERWERP
        .HTMLBody = E_MAILTEKST
        If BIJLGAE_1 <> "" Then .attachments.Add BIJLAGE_1
        If BIJLGAE_2 <> "" Then .attachments.Add BIJLAGE_2
        If BIJLGAE_3 <> "" Then .attachments.Add BIJLAGE_3
        If BIJLGAE_4 <> "" Then .attachments.Add BIJLAGE_4
        If BIJLGAE_5 <> "" Then .attachments.Add BIJLAGE_5
        If BIJLGAE_6 <> "" Then .attachments.Add BIJLAGE_6
        If BIJLGAE_7 <> "" Then .attachments.Add BIJLAGE_7
        If BIJLGAE_8 <> "" Then .attachments.Add BIJLAGE_8
        If BIJLGAE_9 <> "" Then .attachments.Add BIJLAGE_9
        If BIJLGAE_10 <> "" Then .attachments.Add BIJLAGE_10
        .Send
        If MsgBox("er is een voorbeeld naar uw mail-adres verstuurd, is deze goed?", vbYesNo) = vbNo Then Exit Sub
        If MsgBox("mogen er " & Range("A1") & " mails verzonden worden?", vbYesNo) = vbNo Then Exit Sub
    End With
End Sub
 
Laatst bewerkt:
Code:
MsgBox "@Edmoor", vbYesNo + vbCritical + vbDefaultButton2, "Zoiets dus"

De mails zijn al de deur uit hoor, en dan komt jouw MsgBox!
 
alvast bedankt voor jullie antwoorden, maar met de bijlagen is er iets mis

bij onderstaande wordt er een bijlage toegevoegd
.attachments.Add BIJLAGE_1

bij onderstaande wordt er geen bijlage toegevoegd
If BIJLGAE_1 <> "" Then .attachments.Add BIJLAGE_1

daarom hierbij excel om te kunnen testen, de waardes in deze zijn normaal wel formules
 

Bijlagen

Ik zie nu pas dat ik dat fout heb geschreven.
Wijzig dus BIJLGAE_1 in BIJLAGE_1, en zo ook de anderen.
Slip of the finger ;)

Je kan het ook zo doen:
Code:
Sub mails_versturen()
    E_MAILADRES = Range("E_MAILADRES").Value
    E_MAILONDERWERP = Range("E_MAILONDERWERP").Value
    tekst = Range("E_MAILTEKST")
    
    For j = 1 To UBound(tekst)
        E_MAILTEKST = E_MAILTEKST & "<tr><td>" & Join(Application.Index(tekst, j), "</td><td>") & "</td></tr>"
    Next
    E_MAILTEKST = E_MAILTEKST & "</table><P></P><P></P>"
    
    With CreateObject("Outlook.Application").CreateItem(0)
        .to = E_MAILADRES
        .Subject = E_MAILONDERWERP
        .HTMLBody = E_MAILTEKST
        For i = 1 To 10
            If Range("BIJLAGE_" & i).Value <> "" Then .attachments.Add Range("BIJLAGE_" & i).Value
        Next i
        .Send
        If MsgBox("er is een voorbeeld naar uw mail-adres verstuurd, is deze goed?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
        If MsgBox("mogen er " & Range("AANTAL_LIJSTEN") & " mails verzonden worden?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
        If MsgBox("weet U zeker dat de " & Range("AANTAL_LIJSTEN") & " mails mogen worden verzonden?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
        If MsgBox("dit is uw laatste kans om op nee te drukken", vbYesNo) = vbNo Then Exit Sub
    End With
End Sub
 
Laatst bewerkt:
Ed, mij was dat ook niet opgevallen.
Nu werkt het prima, ga vanavond proberen om een lus te maken voor meerdere adressen

NOGMAALS HARTELIJK BEDANKT
 
Mij ontgaat wat je met onderstaande doet als je op nee klikt en de mail is al verzonden.
Code:
If MsgBox("er is een voorbeeld naar uw mail-adres verstuurd, is deze goed?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
        If MsgBox("mogen er " & Range("AANTAL_LIJSTEN") & " mails verzonden worden?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
        If MsgBox("weet U zeker dat de " & Range("AANTAL_LIJSTEN") & " mails mogen worden verzonden?", vbYesNo + vbDefaultButton2) = vbNo Then Exit Sub
        If MsgBox("dit is uw laatste kans om op nee te drukken", vbYesNo) = vbNo Then Exit Sub
 
daar heeft u gelijk in, voor het huidig gebruik.
dit was reeds voorzien voor de volgende stap

bedoeling is de macro uit te breiden voor meer geadresseerde, die hebben telkens een andere bijlage, die wordt geregeld met formules
de eerste mail gaat naar de afzender, bedoeling is dat deze eerst wordt bekeken alvorens de macro verder te laten gaan

het wordt nog wat puzzelwerk, maar het zal wel lukken met eventuele hulp via dit forum
 
Gaat je lukken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan