Beste allemaal,
In outlook heb ik een map waarin alle digitale facturen per mail binnenkomen. In iedere mail zit een PDF en een XML bestand. Deze 2 bijlage worden opgeslagen in een map op de server waarna de mail als msg bestand wordt gearchiveerd eveneens ook in een map op de server en de mail uit deze outlook facturenmap wordt verwijderd. Ik heb het in VBA voor elkaar dat dit werkt, echter ik krijg het niet voor elkaar dat dat voor álle mails in de outlookmap 'facturen' gebeurd.
(De map facturen in outlook 'hangt' direct onder Postvak IN)
Dit is de code die ik tot nu toe heb:
Hopelijk heeft iemand de oplossing,
Hartelijke groet Albert
In outlook heb ik een map waarin alle digitale facturen per mail binnenkomen. In iedere mail zit een PDF en een XML bestand. Deze 2 bijlage worden opgeslagen in een map op de server waarna de mail als msg bestand wordt gearchiveerd eveneens ook in een map op de server en de mail uit deze outlook facturenmap wordt verwijderd. Ik heb het in VBA voor elkaar dat dit werkt, echter ik krijg het niet voor elkaar dat dat voor álle mails in de outlookmap 'facturen' gebeurd.
(De map facturen in outlook 'hangt' direct onder Postvak IN)
Dit is de code die ik tot nu toe heb:
Code:
Sub VerwerkingFacturen()
' Deze macro slaat de bijlagen van de geselecteerde mail op en verplaatst de mail naar een andere emailmap
Dim item As Object
Dim mail As Outlook.MailItem
Dim Bijlage As Attachment
Dim attBestandsnaam As String
Dim attPath As String
Dim mBestandsnaam As String
Dim mPath As String
mPath = "H:\Documents\archief\" 'map voor opslag van de mail als msg bestand
attPath = "H:\Documents\facturen\" 'map voor opslag van de bijlagen
For Each item In Application.Explorers.Explorers(1).Selection '(hier zit denk ik de fout)
'in eigen woorden zou hier moeten komen: voor elke mail in de outlookmap 'facturen' doe onderstaande
If TypeName(item) <> "MailItem" Then
MsgBox "Selecteer eerst een mailbericht...", vbInformation, "Opdracht niet mogelijk"
Exit Sub
End If
'sla de bijlagen uit de mail op
For Each Bijlage In item.Attachments
attBestandsnaam = attPath & Bijlage.FileName
Bijlage.SaveAsFile attBestandsnaam
Next Bijlage
'verplaats de mail met bijlage naar een archiefmap
Set mail = item
FileName = Replace(mail.Subject, ":", "")
FileName = Replace(FileName, "/", "")
FileName = Replace(FileName, "\", "")
FileName = Replace(FileName, "<", "")
FileName = Replace(FileName, ">", "")
FileName = Replace(FileName, ";", "")
FileName = Replace(FileName, "*", "")
FileName = Replace(FileName, ":", "")
FileName = Replace(FileName, "?", "")
FileName = Replace(FileName, "|", "")
FileName = Replace(FileName, ".", "")
mBestandsnaam = mPath & FileName
If mBestandsnaam = "Onwaar" Then Exit Sub
mail.SaveAs mBestandsnaam & ".msg", olMSG
'mail.Delete
Next
End Sub
Hopelijk heeft iemand de oplossing,
Hartelijke groet Albert
Laatst bewerkt: