Bonjour à tous,
Je reçois un fichier Excel zippé par email et j'ai une macro VBA Outlook pour sauver ce fichier sur un serveur, ensuite j'ai le code ci-dessous pour décompresser ce fichier. Mon problème est que le nom de ce fichier varie à chaque fois. J'ai essayé de trouver la logique (genre date du jour + xx) mais je ne trouve pas et j'ai demandé à l'équipe qui me l'envoit si elle pouvait figer le nom mais impossible...
Quelqu'un auurait une idée? Le but est de récupérer le fichier extrait afin de le sauver sous un nom défini à un endroit défini afin d'ensuite lancer un autre module pour l'importer dans ma base de données Access.
Merci d'avances pour vos conseils.
Le code:
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 Private Function CreationDossier(ByVal sChemin As String) As Boolean Dim i As Integer, sTmp As String, Ar() As String If InStr(sChemin, ":") = 0 Then Ar = Split(CurDir & "\" & sChemin, "\") Else Ar = Split(sChemin, "\") End If sTmp = Ar(0) ChDrive sTmp For i = LBound(Ar) + 1 To UBound(Ar) If Ar(i) <> "" Then sTmp = sTmp & "\" & Ar(i) On Error Resume Next MkDir sTmp On Error GoTo 0 End If Next i If Dir(sChemin, vbDirectory) = vbNullString Then CreationDossier = False Else CreationDossier = True End If End Function Private Sub Command0_Click() Dim FSO As Object Dim oApp As Object Dim DossierZip As Variant Dim DossierDezip As Variant DossierZip = "T:\MBatches\CSD\FISH\Daily update from SAP\Overdue.zip" DossierDezip = "T:\MBatches\CSD\FISH\Overdues DB\Unzip\" Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FolderExists(DossierDezip) Then FSO.DeleteFile DossierDezip & "\*.*", True FSO.DeleteFolder DossierDezip & "\*.*", True End If Set FSO = Nothing If CreationDossier(DossierDezip) Then Set oApp = CreateObject("Shell.Application") oApp.Namespace(DossierDezip).CopyHere oApp.Namespace(DossierZip).items Set oApp = Nothing MsgBox "Les fichiers Dézippés se trouvent dans : " & DossierDezip End If End Sub
Partager