Sub openZIPCSV()
Dim FSO As Object, fichier As Variant, dossierTemp As Variant, DefPath As String
fichier = Application.GetOpenFilename(filefilter:="Zip Files (*.zip), *.zip", MultiSelect:=False)
If fichier = False Then Exit Sub
DefPath = Mid(fichier, 1, InStrRev(fichier, "\"))
'création d'un dossier temporaire au meme endroit
dossierTemp = DefPath & "dézippé\": MkDir dossierTemp
'copie des fichiers du zip dans le dossier temporaire créé précédemment
With CreateObject("Shell.Application"): .Namespace(dossierTemp).CopyHere .Namespace(fichier ).items: End With
'Si on veut extraire un seul fichier, faire ca ( si le nom est connu bien evidement):
'oApp.Namespace(dossierTemp).CopyHere oApp.Namespace(fichier ).items.Item("test.txt")
'MsgBox "les fichiers sont ici " & dossierTemp
If Dir(dossierTemp & "\*.csv") <> "" Then Workbooks.Open Dir(dossierTemp & "\*.csv"),local:=true ' ouvre le premier fichier du ((dir"*.csv"))
On Error Resume Next
With CreateObject("scripting.filesystemobject"): .deletefolder Environ("Temp") & "\Temporary Directory*", True: End With
End Sub