Option Explicit
Sub Unzip()
Dim FSO As Object
Dim oApp As Object
Dim DossierZip As Variant
Dim DossierDezip As Variant
DossierZip = ThisWorkbook.Path & "\toto.zip"
DossierDezip = ThisWorkbook.Path & "\Data"
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
Application.StatusBar = "Les fichiers Dézippés se trouvent dans : " & DossierDezip
End If
End Sub
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