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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
Private Function CLASS(TYPE_REVISION As String)
Dim INIT As String
Dim stnom As String
'-----------------------------------------------------------------------
' ADAPTER LE PARAMÈTRE CI-DESSOUS POUR PERSONNALISER LA NOMENCLATURE
'-----------------------------------------------------------------------
INIT = "LoP" ' Inscrire vos Initiales.
stnom = "Mon nom" ' Inscrire votre nom.
'-----------------------------------------------------------------------
Dim myOlApp As Object
Dim FileSaveName As Variant
Dim FolderName As String
Dim NUM_PROJ As String
Dim FileName As String
Dim ShellApp As Object
Dim EMAIL As MailItem
Dim DeQui As String ' de qui vient le courriel. LP
'-----------------------------------------------------------------------
' Indique le dossier par défaut lors du lancement de la macro.
' Si vous désirez changer le dossier par défaut,
' modifier "= 0" pour tout autre endroit désiré. Exemple: "= C:\"
'-----------------------------------------------------------------------
OpenAt = 0 ' Modifier l'ouverture du dossier par défaut.
' OUVERTURE STANDARD SOUS LE BUREAU
'OpenAt = "C:\" ' OUVRIR DIRECTEMENT SOUS LE C:
' (OU N'IMPORTE QUEL RACCOURCI)
'-----------------------------------------------------------------------
'-----------------------------------------------------------------------
' *** code avant qui n'affiche pas les raccourcis ***
'Create a file browser window at the default folder
' Set ShellApp = CreateObject("Shell.Application").BrowseForFolder(0, "S.V.P., Choisir le dossier :", BIF_BROWSEINCLUDEFILES, OpenAt)
'
' 'Set the folder to that selected. (On error in case cancelled)
' On Error Resume Next
' BrowseForFolder = ShellApp.self.path
' 'Destroy the Shell Application
' Set ShellApp = Nothing
' *** FIN du code avant qui n'affiche pas les raccourcis ***
' *********** ajout du code pour afficher les raccourcis:
' que vous m'avez proposé.
BrowseForFolder = BrowseFolderExplorer
' *****************************
' code que j'avais et qui fonctionne:
If BrowseForFolder = "" Then Exit Function
FolderName = BrowseForFolder & "\"
' Modifications pour nouveaux projets 2012-02-29 LP
If Mid(FolderName, (InStr(FolderName, "\P0") + 1), 3) = "P00" Then
NUM_PROJ = UCase(Mid(FolderName, (InStr(FolderName, "\P0") + 1), 7))
ElseIf UCase(Mid(FolderName, (InStr(FolderName, "\B-0") + 1), 4)) = "B-00" Then
NUM_PROJ = UCase(Mid(FolderName, (InStr(FolderName, "\B-0") + 1), 9))
ElseIf UCase(Mid(FolderName, (InStr(FolderName, "\P-0") + 1), 4)) = "P-00" Then
NUM_PROJ = UCase(Mid(FolderName, (InStr(FolderName, "\P-0") + 1), 9))
ElseIf UCase(Mid(FolderName, (InStr(FolderName, "\GC-0") + 1), 4)) = "GC-0" Then
NUM_PROJ = UCase(Mid(FolderName, (InStr(FolderName, "\GC-0") + 1), 10))
ElseIf UCase(Mid(FolderName, (InStr(FolderName, "\RG-0") + 1), 4)) = "RG-0" Then
NUM_PROJ = UCase(Mid(FolderName, (InStr(FolderName, "\RG-0") + 1), 10))
Else
NUM_PROJ = UCase(Mid(FolderName, (InStr(FolderName, "\P0") + 1), 7))
End If
NUM_PROJ = InputBox("Veuillez valider le numéro de projet.", "Numéro de projet", NUM_PROJ)
If NUM_PROJ = "" Then Exit Function
' ******* L'Erreur est ici
DeQui = Mail.SenderName
'Active Outlook
Set myOlApp = CreateObject("Outlook.Application")
Set SEL_ORI = myOlApp.ActiveExplorer.Selection
Set folder = myOlApp.ActiveExplorer.Selection.Item(1).Parent
For i = 1 To folder.Folders.Count
If folder.Folders.Item(i).Name = "Classé" Then ok = True
Next
For i = 1 To folder.Folders.Count
If folder.Folders.Item(i).Name = "Classé" Then ok = True
Next
' ******************************
' pour ne pas avoir le dossier CLASSÉ, MAJ 2012-02-02 LP
' If ok = False Then
' Set backupfolder = folder.Folders.Add("Classé")
' Else
' Set backupfolder = folder.Folders.Item("Classé")
' End If
' **********************
If ok = False Then
Set backupfolder = folder.Folders.Add("Classé")
Else
Set backupfolder = folder.Folders.Item("Classé")
End If
For i = 1 To SEL_ORI.Count Step 1
Set EMAIL = SEL_ORI.Item(i)
FileName = FolderName & SetFileName(EMAIL, FolderName, NUM_PROJ, INIT, TYPE_REVISION, DeQui, stnom)
' **********************
' pour ne pas avoir le dossier CLASSÉ, MAJ 2012-02-02 LP
' EMAIL.Move backupfolder
' **********************
' MAJ 2012-11-15 LP
If Len(FileName) > 255 Then
MsgBox "L'objet du courriel est trop long. La commande a été annulée"
Exit Function
End If
EMAIL.Move backupfolder
'Enregistre le fichier
EMAIL.SaveAs FileName, olMSG
' **********************
' pour ne pas avoir le dossier CLASSÉ, MAJ 2012-02-02 LP
' EMAIL.Delete
' **********************
Next
End Function
'Donne le bon nom au courriel
Private Function SetFileName(Mail As MailItem, FolderName As String, NUM_PROJ As String, INIT As String, TYPE_REVISION As String, DeQui As String, stnom As String) As String
' MAJ 2011-02-07 LP
.....
Sub VInitial()
' procédure appeler par la macro
Dim TYPE_REVISION As String
TYPE_REVISION = "V"
Call CLASS(TYPE_REVISION)
End Sub |
Partager