• 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 als attachment in email versturen vanuit Excel

  • Onderwerp starter Onderwerp starter TMD
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

TMD

Gebruiker
Lid geworden
27 jul 2015
Berichten
52
Hallo,

Ik heb onderstaande code gemaakt om email direct uit excel te verzenden. De code werkt bijna zoals zou moeten, enige probleem is dat de attachment het totaalbestand is. In plaats daarvan zou het eigenlijk het bestand moeten zijn dat gecreeerd wordt in het eerste deel van de code. Iemand enig idee wat ik achter '.Attachments.Add' zou kunnen zetten om het juiste bestand toe te laten voegen?

Code:
Sub sendOutlookEmail()

    ActiveSheet.Range("$A$1:$O$239").AutoFilter Field:=8, Criteria1:= _
        "1"
    Cells(1).CurrentRegion.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Selection.Columns.AutoFit
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:= _
        "H:\Test\" & Cells(2, 7) & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
 
    Dim outlook As Object
    Dim outlookMail As Object

    Set outlook = CreateObject("Outlook.Application")
    Set outlookMail = outlook.CreateItem(0)

    With outlookMail
        .To = "email@gmail.com"
        .Subject = Sheets("Blad1").Range("O2")
        .HTMLBody = "<HTML><BODY>L.S. <P>Test <P>Test <P>Test </BODY></HTML>"
        .Attachments.Add
        .Display
    End With
    ActiveWindow.Close
End Sub
 
Ik heb je link bekeken edmoor en de code aangepast. Echter blijft er een foutmelding komen. 'fout 438 tijdens uitvoering deze eigenschap of methode wordt niet ondersteund door dit object.
 
Laat dan eens zien wat je nu hebt.
 
Ik heb eigenlijk nog steeds hetzelfde als hierboven maar dan met de toevoeging van het attachment.

Code:
Sub sendOutlookEmail()

    ActiveSheet.Range("$A$1:$O$239").AutoFilter Field:=8, Criteria1:= _
        "1"
    Cells(1).CurrentRegion.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Selection.Columns.AutoFit
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:= _
        "H:\Test\" & Cells(2, 7) & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWindow.Close
    
    Dim outlook As Object
    Dim outlookMail As Object

    Set outlook = CreateObject("Outlook.Application")
    Set outlookMail = outlook.createitem(0)

    With outlookMail
        .to = "email@gmail.com"
        .Subject = Sheets("Blad1").Range("O2")
        .HTMLBody = "<HTML><BODY>L.S. <P>Test <P>Test <P>Test </BODY></HTML>"
        .Attachements.Add "H:\Test\" & Cells(2, 7) & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
        .Display
    End With

End Sub
 
Ok, kijk eens naar dit:
.Attachements.Add
En wat het moet zijn:
.Attachments.Add

Waarschijnlijk naar aanleiding van mijn eerdere typefout ;)
 
Haha volledig gemist.

De macro maakt nu wel het bestand uit het eerste deel. Het plaatsen in een email lukt echter nog steeds niet.

Hij geeft fout 448.

Kan het benoemde argument niet vinden.
 
En op welke regel in de macro krijg je die melding?
 
Nogal logisch want die regel is niet compleet:
.Attachments.Add "H:\Test\" & Cells(2, 7) & ".xlsx", FileFormat:= _
 
Deze regel is teveel van het goede.
Code:
.Attachements.Add "H:\Test\" & Cells(2, 7) & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False

Dit moet volstaan.
Code:
.Attachments.Add "H:\Test\" & Cells(2, 7) & ".xlsx"
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan