• 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 en Outlook

Status
Niet open voor verdere reacties.

BertDP

Gebruiker
Lid geworden
9 dec 2009
Berichten
29
Hallo,

Ik heb eerder via dit forum een stukje code gevonden dat ik heb aangepast.

Tot vorige week werd dit Excel document (via de macro) doorgestuurd via Outlook 2010. Als Outlook niet actief was, dan opende de macro een nieuw e-mailbericht in Outlook. Alles werkte perfect.

Sinds gisteren werkt dit echter niet meer (Outlook moet openstaan, zo niet functioneert het niet). Ik heb niets gewijzigd aan de code en werk nog altijd met dezelfde versie van Outlook.

Hebben jullie eventueel een idee hoe dit komt aub?

Alvast bedankt!

-----


Code:
Private Sub CommandButton1_Click()

If Range("D10") = "" Or Range("m10") = "" Or Range("D12") = "" Or Range("M36") = "" Or Range("m21") = "" Or Range("c18") = "" Or Range("e31") = "" Or Range("e34") = "" Or Range("e36") = "" Or Range("e38") = "" Or Range("c43") = "" Or Range("c52") = "" Then
MsgBox "Vergeet niet om alle verplichte velden in te vullen aub. Bedankt!" & vbNewLine & "Veuillez remplir tous les champs obligatoires svp. Merci!" & vbNewLine & "Please, do not forget to fill in all the required fields. Thank you!"
Else

     Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    
With ThisWorkbook.Sheets("Data")
strbody = "<font size=""2"" face=""Calibri"" color=""Black"">" & _
"<span style=';font-size:10ptfont-family:Calibri;color:Black'>" & Sheets("Data").Range("Aj2").Value & " " & "<span style=';font-size:10ptfont-family:Calibri;color:Black'>" & " " & Sheets("Data").Range("ak2").Value & "</span>" & "<br>" & "<br>" & _
"<span style='font-size:10pt;font-family:Calibri;color:Black'>" & Sheets("Data").Range("AJ3").Value & "</span>" & " " & "<span style=';font-size:10ptfont-family:Calibri;color:Black'><b>" & " " & Sheets("Data").Range("AK3").Value & "</b></span>" & "<br>" & "<br>" & _
"<span style='font-size:10pt;font-family:Calibri;color:Black'>" & Sheets("Data").Range("AJ4").Value & "</span>" & " " & "<span style=';font-size:10ptfont-family:Calibri;color:Black'>" & " " & Sheets("Data").Range("AK4").Value & "</span>" & "<br>" & "<br>" & _
"<span style='font-size:10pt;font-family:Calibri;color:Black'><b>" & Sheets("Data").Range("Aj5").Value & "</b></span>" & _
""
End With



Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    
   Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String


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

    Set Sourcewb = ActiveWorkbook

    'Copy the ActiveSheet to a new workbook
    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook

    'Determine the Excel version and file extension/format
    With Destwb
        If Val(Application.Version) < 12 Then
            'You use Excel 97-2003
            FileExtStr = ".xls": FileFormatNum = -4143
        Else
            'You use Excel 2007-2013
            Select Case Sourcewb.FileFormat
            Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
            Case 52:
                If .HasVBProject Then
                    FileExtStr = ".xlsm": FileFormatNum = 52
                Else
                    FileExtStr = ".xlsx": FileFormatNum = 51
                End If
            Case 56: FileExtStr = ".xls": FileFormatNum = 56
            Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
            End Select
        End If
    End With

    '    'Change all cells in the worksheet to values if you want
    '    With Destwb.Sheets(1).UsedRange
    '        .Cells.Copy
    '        .Cells.PasteSpecial xlPasteValues
    '        .Cells(1).Select
    '    End With
    '    Application.CutCopyMode = False

    'Save the new workbook/Mail it/Delete it
    TempFilePath = Environ$("temp") & "\"
    TempFileName = Sourcewb.Name & " " & ThisWorkbook.Sheets("Data").Range("AB5").Value & " " & Format(Now, "d-mm-yyyy h-mm")

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

    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        On Error Resume Next
        With OutMail
        .display
            .to = ThisWorkbook.Sheets("Data").Range("W2").Value
            .CC = ThisWorkbook.Sheets("Data").Range("X2").Value
            .BCC = ""
            .Subject = ThisWorkbook.Sheets("Data").Range("AA2").Value
             .HTMLBody = strbody & "<br>" & .HTMLBody
            .Attachments.Add Destwb.FullName
            'You can add other files also like this
            '.Attachments.Add ("C:\test.txt")
            .display   'or use .Display
        End With
        On Error GoTo 0
        .Close savechanges:=False
    End With

    'Delete the file you have send
    Kill TempFilePath & TempFileName & FileExtStr

    Set OutMail = Nothing
    Set OutApp = Nothing

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

End If
End Sub
 
Afgezien van het feit dat je 2x Set OutApp = CreateObject("Outlook.Application") en Set OutMail = OutApp.CreateItem(0) en 2x .Display hebt staan zie ik niet dat dat probleem zou kunnen veroorzaken.

Bij mij werkt het prima zonder Outlook open te hebben.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan