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

de MsgBox in een mail opstelling werk niet.

Status
Niet open voor verdere reacties.

markwat

Gebruiker
Lid geworden
11 mrt 2011
Berichten
301
de tweede .HTMLBody regel had ik graag een MsgBox gewild maar ergens zet is het niet goed neer.
dus wanneer het een factuur is de vraag stellen of de extra1 en extra2 als regel in de mail gezet moet worden.

Code:
Sub MailMetPDFBijlage(bestandsnaam As String, FolderLocatie As String, Sheetnaam As String)
Dim Aanhef As String, Inhoud As String, Extra As String, Extra1 As String, Extra2 As String
Dim DefaultFolder As String

Aanhef = "Beste " & Sheets("Invoersheet").Range("G17").Value & ", "
Inhoud = "<br>" & "<br>" & "Hierbij de " & Sheetnaam & "."
Extra = "<br>" & "<br>" & "Graag verneem ik uw reactie" & "."
Extra1 = "<br>" & "<br>" & "Is het mogelijk om een review te schrijven?" & "."
Extra2 = "<br>" & "<br>" & "https://www.onbekendpersoon.nl/reviews/" & "."

If InStr(Sheets("InvoerSheet").Range("G21").Value, "@") > 0 Then 'er moet een @ staan
    Dim OutApp As Outlook.Application
    Dim OutMail As Outlook.MailItem

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)
    

    With OutMail
        .Display
        .To = Sheets("InvoerSheet").Range("G21").Value
        .CC = Sheets("InvoerSheet").Range("I21").Value
        .Subject = Sheets("InvoerSheet").Range("P14").Value
        .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & .HTMLBody
        .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & IIf(Sheetnaam = "Factuur", MsgBox("Regel review?", vbYesNo) = vbYes Then, Extra1 & Extra2, "") & .HTMLBody
        
   
    
End With

    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
    


End If
End Sub
 
Bedoel je dit?
Code:
Sub MailMetPDFBijlage(bestandsnaam As String, FolderLocatie As String, Sheetnaam As String)
    Dim Aanhef As String, Inhoud As String, Extra As String, Extra1 As String, Extra2 As String
    Dim DefaultFolder As String
    
    Aanhef = "Beste " & Sheets("Invoersheet").Range("G17").Value & ", "
    Inhoud = "<br>" & "<br>" & "Hierbij de " & Sheetnaam & "."
    Extra = "<br>" & "<br>" & "Graag verneem ik uw reactie" & "."
    Extra1 = "<br>" & "<br>" & "Is het mogelijk om een review te schrijven?" & "."
    Extra2 = "<br>" & "<br>" & "https://www.onbekendpersoon.nl/reviews/" & "."
    
    If InStr(Sheets("InvoerSheet").Range("G21").Value, "@") > 0 Then [COLOR="#008000"]'er moet een @ staan[/COLOR]
        Dim OutApp As Outlook.Application
        Dim OutMail As Outlook.MailItem
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(olMailItem)
        
        With OutMail
            .Display
            .To = Sheets("InvoerSheet").Range("G21").Value
            .CC = Sheets("InvoerSheet").Range("I21").Value
            .Subject = Sheets("InvoerSheet").Range("P14").Value
            .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & .HTMLBody
            If Sheetnaam = "Factuur" Then
                If MsgBox("Regel review?", vbYesNo) = vbYes Then
                    .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Extra1 & Extra2 & .HTMLBody
                End If
            End If
        End With
    
        On Error GoTo 0
    
        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
End Sub
 
Beste Edmoor,

hij vraag het nu wel maar alleen na de mail en de regels worden niet toegepast
 
Ik ken je volgorde van zaken niet, dus dat kan je zelf doen.
Let op de momenten waarop je .HTMLBody aanvult en wat er dan eerst bewaard moet blijven.
 
dit werkt correct bij factuur.

Code:
.HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & IIf(Sheetnaam = "Factuur", Extra1 & Extra2, "") & .HTMLBody

alleen krijg ik de MsgBox er met geen mogelijkheid tussen.
Code:
.HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & IIf(Sheetnaam = "Factuur", IIf MsgBox("Regel review?", vbYesNo) = vbYes Then, & Extra1 & Extra2, "") & .HTMLBody

zo iets moet het worden maar ik krijg constant rode tekst.
 
Ja, omdat de syntax niet klopt.
 
dit werkt prima.

Code:
.HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & IIf(Sheetnaam = "Factuur", Extra1 & Extra2, "") & .HTMLBody

Maar nu moet enkel extra1 en extra2 uitgezet kunnen worden.
Zoals ik het nu begrijpt moet dit tussen .HTMLBody komen te staan want anders slaat hij .HTMLBody over of geeft hij de vraag na de op gestelde mail.
 
Laatst bewerkt:
Dat is niet de regel met de MsgBox.
Als een regel rood wordt weergegeven is de syntax onjuist.
 
maar hoe moet ik het dan neer zetten.
er moet enkel de vraag komen, wil ik de twee regels toevoegen ja of nee.
 
Dat heb ik al laten zien.
Plaats een voorbeeld document met die code.
Laat daarin ook zien hoe de mail er met en zonder die extra tekst moet zijn.
 
dit had u opgesteld.

Code:
Sub MailMetPDFBijlage(bestandsnaam As String, FolderLocatie As String, Sheetnaam As String)
    Dim Aanhef As String, Inhoud As String, Extra As String, Extra1 As String, Extra2 As String
    Dim DefaultFolder As String
    
    Aanhef = "Beste " & Sheets("Invoersheet").Range("G17").Value & ", "
    Inhoud = "<br>" & "<br>" & "Hierbij de " & Sheetnaam & "."
    Extra = "<br>" & "<br>" & "Graag verneem ik uw reactie" & "."
    Extra1 = "<br>" & "<br>" & "Is het mogelijk om een review te schrijven?" & "."
    Extra2 = "<br>" & "<br>" & "https://www.onbekendpersoon.nl/reviews/" & "."
    
    If InStr(Sheets("InvoerSheet").Range("G21").Value, "@") > 0 Then 'er moet een @ staan
        Dim OutApp As Outlook.Application
        Dim OutMail As Outlook.MailItem
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(olMailItem)
        
        With OutMail
            .Display
            .To = Sheets("InvoerSheet").Range("G21").Value
            .CC = Sheets("InvoerSheet").Range("I21").Value
            .Subject = Sheets("InvoerSheet").Range("P14").Value
            .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & .HTMLBody
            If Sheetnaam = "Factuur" Then
                If MsgBox("Regel review?", vbYesNo) = vbYes Then
                    .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Extra1 & Extra2 & .HTMLBody
                End If
            End If
        End With
    
        On Error GoTo 0
    
        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
End Sub

maar de regel .HTMLBody maakt hij klaar ook bij factuur, als hij daarna een regel krijgt
Code:
 If Sheetnaam = "Factuur" Then
                If MsgBox("Regel review?", vbYesNo) = vbYes Then
                    .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Extra1 & Extra2 & .HTMLBody

is de mail al klaar en opgesteld.

bij een offerte zet hij een regel Graag verneem ik uw reactie
bij een factuur moet door middel van een MsgBox wel of niet deze regels erin gezet worden. Is het mogelijk om een review te schrijven?
https://www.onbekendpersoon.nl/reviews/
 
Doe het dan eens zo:
Code:
Sub MailMetPDFBijlage(bestandsnaam As String, FolderLocatie As String, Sheetnaam As String)
    Dim Aanhef As String, Inhoud As String, Extra As String, Extra1 As String, Extra2 As String
    Dim DefaultFolder As String
    
    Aanhef = "Beste " & Sheets("Invoersheet").Range("G17").Value & ", "
    Inhoud = "<br>" & "<br>" & "Hierbij de " & Sheetnaam & "."
    Extra = "<br>" & "<br>" & "Graag verneem ik uw reactie" & "."

    If InStr(Sheets("InvoerSheet").Range("G21").Value, "@") > 0 Then [COLOR="#008000"]'er moet een @ staan[/COLOR]
        Dim OutApp As Outlook.Application
        Dim OutMail As Outlook.MailItem
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(olMailItem)
    
        If Sheetnaam = "Factuur" Then
            If MsgBox("Regel review?", vbYesNo) = vbYes Then
                Extra1 = "<br>" & "<br>" & "Is het mogelijk om een review te schrijven?" & "."
                Extra2 = "<br>" & "<br>" & "https://www.onbekendpersoon.nl/reviews/" & "."
            Else
                Extra1 = ""
                Extra2 = ""
            End If
        End If
        
        With OutMail
            .Display
            .To = Sheets("InvoerSheet").Range("G21").Value
            .CC = Sheets("InvoerSheet").Range("I21").Value
            .Subject = Sheets("InvoerSheet").Range("P14").Value
            .HTMLBody = "<font size=""2"" face=""Times New Roman"" color=""#800000"">" & Aanhef & Inhoud & IIf(Sheetnaam = "Offerte", Extra, "") & Extra1 & Extra2 & .HTMLBody
        End With
    
        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
End Sub
 
Beste Edmoor,

heel hartelijk dank voor je geduld.

het werkt geweldig!!!

gr paul
 
Graag gedaan.
En dit kan er nog uit:
Code:
            Else
                Extra1 = ""
                Extra2 = ""
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan