koenschutte
Gebruiker
- Lid geworden
- 1 aug 2016
- Berichten
- 10
Hallo,
Ik heb heel wat forums gezocht om mij te helpen met dit probleem.. jullie zijn mijn laatste redmiddel!
Bij de inventarisaties van verschillende dingen krijg ik mails binnen met een PDF bijlage.
Nu is het zo dat hij de naam van de PDF overneemt en indien die al bestaat er een getal achter zet.
Ik wil alleen dat het bestandsnaam gelijk is aan OF het e-mailadres van de verzender (zou ideaal zijn) en anders de naam van de verzender.
Hoe kan ik dit realiseren?
Ik heb al verschillende aanpassingen geprobeerd, echter snap ik er zelf niks van.
Ik heb heel wat forums gezocht om mij te helpen met dit probleem.. jullie zijn mijn laatste redmiddel!
Bij de inventarisaties van verschillende dingen krijg ik mails binnen met een PDF bijlage.
Nu is het zo dat hij de naam van de PDF overneemt en indien die al bestaat er een getal achter zet.
Ik wil alleen dat het bestandsnaam gelijk is aan OF het e-mailadres van de verzender (zou ideaal zijn) en anders de naam van de verzender.
Hoe kan ik dit realiseren?
Ik heb al verschillende aanpassingen geprobeerd, echter snap ik er zelf niks van.
Code:
Option Explicit
Sub GetAttachments()
On Error Resume Next
'create the folder if it doesnt exists:
Dim fso, ttxtfile, txtfile, WheretosaveFolder
Dim objFolders As Object
Set objFolders = CreateObject("WScript.Shell").SpecialFolders
'MsgBox objFolders("mydocuments")
ttxtfile = objFolders("mydocuments")
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile = fso.CreateFolder(ttxtfile & "email attachements")
' ------------------------------------------------------
' Set fso = Nothing
' ------------------------------------------------------
WheretosaveFolder = ttxtfile & "\email attachments"
On Error GoTo GetAttachments_err
' Declare variables
Dim ns As NameSpace
Dim Inbox As MAPIFolder
Dim Item As Object
Dim Atmt As Attachment
Dim FileName As String
Dim I As Integer
Set ns = GetNamespace("MAPI")
'Set Inbox = ns.GetDefaultFolder(olFolderInbox)
' added the option to select whic folder to export
Set Inbox = ns.PickFolder
'to handle if the use cancalled folder selection
If Inbox Is Nothing Then
MsgBox "Selecteer eerst eens een mapje.", vbCritical, _
"Export - Not Found"
Exit Sub
End If
''''
I = 0
' Check Inbox for messages and exit of none found
If Inbox.Items.Count = 0 Then
MsgBox "Moet er wel wat instaan.", vbInformation, _
"Export - Not Found"
Exit Sub
End If
' Check each message for attachments
For Each Item In Inbox.Items
' Save any attachments found
For Each Atmt In Item.Attachments
' This path must exist! Change folder name as necessary.
' ------------------------------------------------------
FileName = WheretosaveFolder & "\" & fso.GetBaseName(Atmt.FileName) & I & "." & fso.GetExtensionName(Atmt.FileName)
' ------------------------------------------------------
Atmt.SaveAsFile FileName
I = I + 1
Next Atmt
Next Item
' Show summary message
If I > 0 Then
MsgBox "There were " & I & " attached files." _
& vbCrLf & "These have been saved to the Email Attachments folder in My Documents." _
& vbCrLf & vbCrLf & "Gelukt!", vbInformation, "Export Complete"
Else
MsgBox "There were no attachments found in any mails.", vbInformation, "Export - Not Found"
End If
' ------------------------------------------------------
Set fso = Nothing
' ------------------------------------------------------
' Clear memory
GetAttachments_exit:
Set Atmt = Nothing
Set Item = Nothing
Set ns = Nothing
Exit Sub
' Handle errors
GetAttachments_err:
MsgBox "An unexpected error has occurred." _
& vbCrLf & "Please note and report the following information." _
& vbCrLf & "Macro Name: GetAttachments" _
& vbCrLf & "Error Number: " & Err.Number _
& vbCrLf & "Error Description: " & Err.Description _
, vbCritical, "Error!"
Resume GetAttachments_exit
End Sub