1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
'Déclarations
Dim MonApp As Outlook.Application
Dim MonMail As Object
Dim MonNameSpace As Outlook.NameSpace
Dim MonDossier As Outlook.Folder
Dim NomMail As Object
Dim pceJointe As Outlook.Attachment
'Instance des objets
Set MonApp = Outlook.Application
Set MonNameSpace = MonApp.GetNamespace("MAPI")
Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)
Set NomMail = MonMail.Subject
Set PJ = MonMail.Attachements
Dim NumChantier As String
Dim NbCaracNumChantier As String
'Test si l'expéditeur correspond
If MonMail.SenderEmailAddress = "a.tarbour@gmail.com" Then
'Vérifier si le répertoire existe, si non le créer
'Compte le nombre de caracteres avant le premier - et les extraits dans la variable NumChantier
NbCaracNumChantier = InStr(NomMail, "-")
NumChantier = Left(NomMail, NbCaracNumChantier)
'Si le répertoire avec le numéro de chantier n'existe pas, le créer
If Dir("X:\Registres" & NumChantier, vbDirectory) <> "" Then
Else
FileSystemObject.CopyFolder "X:\Registres\Modele dossier chantier", "X:\Registres\" & NumChantier
End If
'Extraire le type de fiche reçue et le copier dans le bon répertoire
'Se placer après le premier tiré, puis aller chercher le prochain tiré pour extraire seulement le type de fichier
x = NbCaracNumChantier + 1
NbCaracFiche = InStr(x, NomMail, "-")
NomFiche = Mid(NomMail, NbCaracNumChantier, NbCaracFiche - NbCaracNumChantier)
'Sauvegarder la pièce jointe dans le dossier correspondant à la fiche, en la renommant avec le nom du mail (numchantier - type fichier - date).
PJ.SaveAsFile "X:\Registres\" & NumChantier & "\" & NomFiche & "\" & NomMail
End If
End Sub |
Partager