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 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
| Dim objoutlook As Outlook.Application
Dim olns As Outlook.Namespace
Dim mItem As Outlook.MailItem
Dim att As Outlook.Attachment
Dim fld As Outlook.MAPIFolder
Dim Compteur As Integer
Dim message, Repertoire, NomDeFichierSurDisque, NomDeFichier, Taille, Emetteur As String
Dim AncienNom As String, NouveauNom As String
Option Explicit
Public Sub TransfertPJ()
'Création de l'objet Outlook
Set objoutlook = CreateObject("Outlook.application")
'Récupération de l'espace de nom d'outlook
Set olns = objoutlook.GetNamespace("MAPI")
'Récupération du répertoire "boite de réception" par défault
Set fld = olns.GetDefaultFolder(olFolderInbox)
' Initialisation du reperetoire de sauvegarde
' ne pas oublier l'anti-slash à la fin du repertoire
Repertoire = "Z:\Risques et documentation OPCVM\Rapprochement Front Back\Confirmation Trades\Essai\"
'Inialisation des variables Message, NomDeFichier, NomDeFichierSurDisque, Taille, Emetteur
message = NomDeFichierSurDisque = NomDeFichier = Taille = Emetteur = ""
' Sauve les pieces jointes des mails se trouvant dans la boîte de réception.
' Pour adresser un dossier dans la boite de réception on pourrait utiliser :
' fld.Folders("Nom_Du_Dossier").Items
For Each mItem In fld.Folders("Confirmation Oddo").Items
For Each att In mItem.Attachments
If att.Type = olByValue Then
' Nom du fichier modifié pour l'enregistrement. Evite les controles superflus en renommant.
NomDeFichier = att.Filename
NomDeFichierSurDisque = NomDeFichier
att.SaveAsFile Repertoire & NomDeFichierSurDisque
End If
Next
Next
Exit Sub
End Sub
Sub change_le_nom_des_xls()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim chemin As Variant
Dim filtre As Variant
Dim fichiers As Variant
Dim Workbook As Variant
Dim objFSO As Variant
chemin = "Z:\Risques et documentation OPCVM\Rapprochement Front Back\Confirmation Trades\Essai\" ' chemin a adapter
'on va lister tout les fichiers de type excel en filtrant l'extention
filtre = "*.xls" ' ou le filtre que tu veux ... par exemple "*.txt" ou même "toto*.*"
fichiers = Dir(chemin & filtre, vbNormal Or vbHidden) 'on prend meme ce qui sont caché
'c'est parti
Do While fichiers <> "" '
Workbooks.Open (chemin & fichiers)
If Range("C16") <> Veille Then
Workbooks.Close (chemin & fichiers)
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(chemin & fichiers)
f.Delete
End If
If Range("B13") = "" Then
'Macro pour la date et le sens de l'odre
Range("E15") = "=YEAR(R[-8]C[-3])"
Range("F15") = "=MONTH(R[-8]C[-4])"
Range("G15") = "=DAY(R[-8]C[-5])"
Range("D25") = "=R[-10]C[1]&R[-10]C[2]&R[-10]C[3]"
If Range("C20") = "Vente" Then Range("C20").Value = "SELL"
If Range("C20") = "Achat" Then Range("C20").Value = "BUY"
'on sauve le classeur sous le nom
ActiveWorkbook.SaveAs Filename:=chemin & Range("C22") & "_" & Range("C20") & "_" & Range("B8") & "_" & Range("D25") & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
'on va supprimer le fichier portant l'ancien nom
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile (chemin & fichiers)
fichiers = Dir
End If
If Range("B13") = "OPERATION N°" Then
'Macro pour la date et le sens de l'ordre
Range("E15") = "=YEAR(R[-7]C[-3])"
Range("F15") = "=MONTH(R[-7]C[-4])"
Range("G15") = "=DAY(R[-7]C[-5])"
Range("D25") = "=R[-10]C[1]&R[-10]C[2]&R[-10]C[3]"
If Range("C20") = "Vente" Then Range("C20").Value = "SELL"
If Range("C20") = "Achat" Then Range("C20").Value = "BUY"
'on sauve le classeur sous le nom
ActiveWorkbook.SaveAs Filename:=chemin & Range("C22") & "_" & Range("C20") & "_" & Range("B9") & "_" & Range("D25") & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close
'on va supprimer le fichier portant l'ancien nom
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile (chemin & fichiers)
fichiers = Dir
End If
Loop
End Sub
Private Function Veille() As Date
Dim d As Byte
d = DatePart("w", Date, vbSunday) 'Si Date est Dimanche ou Lundi, on prend Vendredi comme étant la veille. 'Sinon, on prend j-1
Veille = Date - IIf(d <= 2, d + 1, 1)
End Function |
Partager