Bonjour a tous

J'ai un code qui fonctionne tres bien qui donne des noms à des fichiers excels présent dans un classeur. Le voici:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 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("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
J'aimerais juste rajouter une condition If directement apres (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Workbooks.Open (chemin & fichiers)
) pour qu'il me supprime les fichiers qui ne date pas de la veille, avant d'avancer dans le code

Pour cela j'ai crée of course une fonction veillle:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
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
Et je pensais rajouté juste apres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Workbooks.Open (chemin & fichiers)
quelque chose comme ça pour supprimer les fichiers qui ne correpondent pas à la "veille".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
If Range("C16") <> Veille Then
 
 
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(chemin & fichiers)
 f.Delete
 
 End If
Mais ça me dis Permission refusée donc je ne vois pas bien pourquoi

Je pense qu'il s'agit d'un petit truc assez stupide mais bon là je bloque !!

Have a good day