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

Bestand via VBA versturen

Status
Niet open voor verdere reacties.

edsel_nl

Gebruiker
Lid geworden
24 okt 2006
Berichten
72
Ik gebruik de volgende code in excel om een bestand te verzenden via outlook 2007:
Code:
' Verzenden via mail.
Err.Number = 0
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err.Number > 0 Then
Set OutApp = CreateObject("Outlook.Application")
Err.Clear
End If
On Error GoTo 0
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
    .To = Range("C8")
    .CC = ""
    .BCC = ""
    .Subject = "Bestelling"
    .Body = "Hallo," & vbNewLine & vbNewLine & "bla bla bla bal." & vbNewLine & vbNewLine & "Met vriendelijke groet," & vbNewLine & Range("H9") & vbNewLine & vbNewLine & "P.S. Graag ontvangen wij een ontvangstbevestiging op dit e-mailadres."
    .Attachments.Add "C:\Test\Temp\" & Range("H2") & " " & Range("C6") & ".pdf"
    .display
End With
Set OutMail = Nothing
Set OutApp = Nothing

Wanneer ik de bovenstaande code gebruik verschijnt het "bericht" venster van Outlook, Outlook zelf wordt niet gestart. Wanneer ik vervolgens op de knop "verzenden" druk plaats het programma het bericht in de "postvak uit" zonder het bericht te verzenden. Als ik vervolgens outlook start gaat hij het bericht pas verzenden. Is het ook mogelijk om outlook zelf ook te starten als deze nog niet gestart is?

Zie bijlage voor voorbeeld zorg er dan wel voor dat je outlook nog niet opgestart hebt
 

Bijlagen

Probeer dit eens

Code:
' Verzenden via mail.
Err.Number = 0
On Error Resume Next
Set OutApp = GetObject(, "Outlook.Application")
If Err.Number > 0 Then
Set OutApp = CreateObject("Outlook.Application")
Err.Clear
End If
On Error GoTo 0
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
    .To = Range("C8")
    .CC = ""
    .BCC = ""
    .Subject = "Bestelling"
    .Body = "Hallo," & vbNewLine & vbNewLine & "bla bla bla bal." & vbNewLine & vbNewLine & "Met vriendelijke groet," & vbNewLine & Range("H9") & vbNewLine & vbNewLine & "P.S. Graag ontvangen wij een ontvangstbevestiging op dit e-mailadres."
    .Attachments.Add "C:\Test\Temp\" & Range("H2") & " " & Range("C6") & ".pdf"
    .display
[B]    .Send[/B]
End With
Set OutMail = Nothing
Set OutApp = Nothing

Heb het zelf niet getest, want gebruik zelf geen Outlook.

Wigi
 
Helaas,

Het bericht wordt door de toevoeging .send wel gelijk in het "posvak uit" geplaatst maar wordt nog steeds pas verzonden als je outlook zelf start.
 
Dan zou ik het ook niet weten, heb zoiets nog nooit gebruikt. Succes toch nog.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan