Ik wil e-mails selecteren om deze naar mijn projectdossiers te verplaatsen.
Het opslaan van de e-mail)s) gaat goed, maar het lukt mij niet om ze daarna te verwijderen.
Met een icoontje in de menubalk roep ik de macro aan, selecteer de e-mail(s), selecteer het project en druk vervolgens op "Verplaats de e-mails".
Het opslaan van de e-mail)s) gaat goed, maar het lukt mij niet om ze daarna te verwijderen.
Code:
'status per 16 december 2023
Private Sub Commandbutton1_Click()
'Ref.: https://www.slipstick.com/developer/code-samples/save-selected-message-file/
Dim myItem As Object
Dim olMail As Outlook.MailItem
Dim Selection As Selection
Dim strSender As String
Dim strDate As String
Dim strPath As String
Dim strSubject As String 'will be shortened to fix number of characters
Dim sName As String
Dim sChr As String
strPath = ListBox2.List(ListBox2.ListIndex, 1)
'MsgBox strPath
'Action with loop for all selected e-mails
Set myNamespace = Application.GetNamespace("MAPI")
Set Selection = Application.ActiveExplorer.Selection
For Each objItem In ActiveExplorer.Selection
If objItem.MessageClass = "IPM.Note" Then
Set oMail = objItem
strSubject = oMail.Subject
ReplaceCharsForFileName strSubject, "-"
strSubject = Left(strSubject, 20) 'limit the lenght of sth subject
strSender = oMail.Sendername
ReplaceCharsForFileName strSender, "-"
'strSender = Left(strSender & String(20, "_"), 20) 'was intented for outlining messages
strSender = Left(strSender, 20)
dtDate = oMail.ReceivedTime
strDate = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, vbUseSystem) & Format(dtDate, "-hhnn", vbUseSystemDayOfWeek, vbUseSystem)
'Debug.Print strPath & strDate & " «" & strSender & "» " & strSubject & ".msg"
oMail.SaveAs strPath & strDate & " «" & strSender & "» " & strSubject & ".msg", olMSG
End If
'Delete the selected e-mail
'objItem.Delete 'Outlook kan het item niet verwijderen
'oMail.Delete 'Outlook kan het item niet verwijderen
'MailItem.Delete 'Object vereist
Next 'Next mail
Userform1.hide
End Sub
'===========================================================================
'strSubject and strSender must be checked
Public Sub ReplaceCharsForFileName(sName As String, sChr As String)
sName = Replace(sName, "'", sChr)
sName = Replace(sName, "*", sChr)
sName = Replace(sName, "/", sChr)
sName = Replace(sName, "\", sChr)
sName = Replace(sName, ":", sChr)
sName = Replace(sName, "?", sChr)
sName = Replace(sName, Chr(34), sChr)
sName = Replace(sName, "<", sChr)
sName = Replace(sName, ">", sChr)
sName = Replace(sName, "|", sChr)
sName = Replace(sName, "&", sChr)
End Sub
'===========================================================================
Private Sub UserForm_Initialize()
'Read setup file/parameters for dropbox
file = "D:\Setup.csv"
i = 0
Userform1.ListBox2.Clear
Open file For Input As #1
Do Until EOF(1)
Line Input #1, strLine: 'Debug.Print strLine
i = i + 1
ListBox2.AddItem
ListBox2.List(i - 1, 0) = Split(strLine, ";")(0)
ListBox2.List(i - 1, 1) = Split(strLine, ";")(1)
Loop
Close #1
End Sub
Met een icoontje in de menubalk roep ik de macro aan, selecteer de e-mail(s), selecteer het project en druk vervolgens op "Verplaats de e-mails".