probleem verzenden email vanuit excel

Status
Niet open voor verdere reacties.

DirkB

Gebruiker
Lid geworden
24 jun 2014
Berichten
96
Geachte experts

Onderstaande code gebruik ik al lange tijd zonder problemen.
Maar op onze neiuwe server (windows 2012) werkt het niet meer.

ik gebruik office 2010 zowel op de oude als op de nieuwe server.

kan het iets zijn in de verwijzingen van het VBA project?

Code:
  Sub Send()
    
   
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    Dim subj As Range
    Dim mailto As Range
    Dim mailcc As Range
    
    Set rng = Sheets("aftersales week rapport").Range("A1:M62").SpecialCells(xlCellTypeVisible)
    Set subj = Sheets("aftersales week rapport").Range("S7")
     Set mailto = Sheets("aftersales week rapport").Range("S10")
     Set mailcc = Sheets("aftersales week rapport").Range("S12")
       
       On Error GoTo 0

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

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

    On Error Resume Next
    With OutMail
        .To = mailto
        .CC = mailcc
        .BCC = ""
        .Subject = subj
        .HTMLBody = RangetoHTML(rng)
        .Send   'or use .Display
    End With
    On Error GoTo 0

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing

end sub
 
Hoi,
Kan je iets mee?
 

Bijlagen

  • Automatisch mailen3.xlsm
    24,7 KB · Weergaven: 46
werkt wel maar is het niet helemaal

heb even getest.
Je code werkt wel op de nieuwe server.
Maar je code verstuurd het hele bestand.

de bedoeling is om een range in de 'body' van de mail te versturen

gr Dirk
 
Bij het gebruik van .HTMLBody moet je zowel .Display als .Send gebruiken. Dus:
Code:
    With OutMail
        .To = mailto
        .CC = mailcc
        .BCC = ""
        .Subject = subj
        .HTMLBody = RangetoHTML(rng)
        .Display
        .Send
    End With
 
Edmoor,

dank voor je reactie
met .Display maakt de code nu wel een email
maar in de email worden

to
cc
subject

niet gevuld
 
Dan zal je in debug mode moeten kijken wat de waarde van die variabelen daar is want die zijn dan kennelijk leeg.
Overigens moet je die variabelen niet met de Set opdracht vullen.
 
Bij het gebruik van .HTMLBody moet je zowel .Display als .Send gebruiken. Dus:
Code:
    With OutMail
        .To = mailto
        .CC = mailcc
        .BCC = ""
        .Subject = subj
        .HTMLBody = RangetoHTML(rng)
        .Display
        .Send
    End With

@Edmoor

Dat klopt niet: .send is voldoende.
 
Normaal gesproken wel, maar niet als je .HTMLBody gebruikt.
 
snb en edmoor,
dank voor jullie reacties.
nog even ter verduidelijking

met windows server 2008 ging de code prima
met windows server 2012 niet meer.

met .display toegevoegd genereert de code nu wel een email
zonder .display toegevoegd komt er geen email.

het enige wat nu nog niet lukt is het vullen van het emailadres dmv een variabele.
de variabele rng doet het wel

wat doe ik fout mbt de variabele?
 
Probeer deze eens:
Code:
Sub Send()
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
    Dim subj As String
    Dim mailto As String
    Dim mailcc As String
    
    With Sheets("aftersales week rapport")
        Set rng = .Range("A1:M62").SpecialCells(xlCellTypeVisible)
        subj = .Range("S7")
        mailto = .Range("S10")
        mailcc = .Range("S12")
    End With
       
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

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

    On Error Resume Next
    With OutMail
        .To = mailto
        .CC = mailcc
        .BCC = ""
        .Subject = subj
        .HTMLBody = RangetoHTML(rng)
        .Display
        .Send
    End With
    On Error GoTo 0

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub
 
Laatst bewerkt:
edmoor

dank je, het werkt
(dat van die String had ik zelf moeten bedenken...)

toch raar dat het op de oude server wel werkte

gr Dirk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan