Sub DecompresserArchiveZip()
Const NOCONFIRMATION = 16
'définition des variables
Dim OShell As Object, XFiles As Object
Dim FRacine, FZip, FTemp, FUnzip, FNom ' par défaut type Varian
'informations sur l'archive et le dossier pour les fichiers décompressés
FNom = "FnB Panel,Descriptions,Reference3012789200103.zip" ' nom du fichier Zip
FRacine = "C:\Users\dl" ' racine où on travaille
FZip = FRacine & "\" & FNom ' l'archive à décompresser
FUnzip = FRacine & "\Extraction PDH\Unzip" ' Dossier Final de stockage
FTemp = FRacine & "\TempZip" ' Dossier intermédiaire de décompression
If Dir(FTemp, vbDirectory) = vbNullString Then MkDir FTemp
'Décompression
Set OShell = CreateObject("Shell.Application")
' Décompression dans le dossier intermédiaire
OShell.Namespace(FTemp).CopyHere OShell.Namespace(FZip).Items, NOCONFIRMATION
Set XFiles = CreateObject("Scripting.FileSystemObject").getfolder(FTemp).Files
If XFiles.Count = 1 Then
For Each File In XFiles
' Mise en conformité du nom
File.Name = Replace(FNom, ".zip", ".csv")
' Déplacement du fichier dans le dossier Final
OShell.Namespace(FUnzip).MoveHere File.Path, NOCONFIRMATION
Next
End If
Set XFiles = Nothing
Set OShell = Nothing
If Dir(FTemp, vbDirectory) <> vbNullString Then RmDir FTemp
End Sub