J'ai le code ci-dessous pour télécharger automatiquement des courriels Outlook dans un répertoire local spécifique.Recherche d'une chaîne dans un format spécifique
Je voudrais être plus précis en ce qui concerne le nom de fichier pour le courrier enregistré.
Je dois rechercher l'objet et/ou le corps de l'e-mail pour trouver une chaîne de texte au format AANNNNNNA, où A est une lettre et N est un nombre. Si trouvé, utilisez celui-ci à la place du corps du sujet dans le nom du fichier résultant, si aucun n'est présent, utilisez l'objet de l'e-mail.
Je n'arrive pas à comprendre comment rechercher le format ci-dessus.
Option Explicit
Public Sub SaveMessageAsMsg()
Dim oMail As Outlook.MailItem
Dim objItem As Object
Dim sPath As String
Dim dtDate As Date
Dim sName As String
For Each objItem In ActiveExplorer.Selection
If objItem.MessageClass = "IPM.Note" Then
Set oMail = objItem
sName = oMail.Subject
ReplaceCharsForFileName sName, "-"
dtDate = oMail.ReceivedTime
sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
vbUseSystem) & Format(dtDate, "-hhnnss", _
vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
sPath = "C:\Users\XXXXXX\Desktop\Test\"
Debug.Print sPath & sName
oMail.SaveAs sPath & sName, olMSG
End If
Next
End Sub
Private 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)
End Sub
http://analystcave.com/vba-like-operator/ Ou vous pouvez utiliser une expression régulière: http://analystcave.com/excel-regex-tutorial/ –