Ma macro court, ne s'arrête jamais et ne fait rien

Bonjour à toutes et à tous,

Voilà, j'aimerais pouvoir dézipper automatiquement un ficher zip. Mais je n'y arrive pas.

Le code, que j'essaie de faire fonctionner courst mais ne s'arrête jamais et ne fait rien.

Est-ce que quelqu'un pourrait-il me venir en aide?

Merci,

Marion

 
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Const STILL_ACTIVE = &H103
Public Const PROCESS_QUERY_INFORMATION = &H400
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long

Public Const STILL_ACTIVE = &H103
Public Const PROCESS_QUERY_INFORMATION = &H400

Public Sub ShellAndWait(ByVal PathName As String, Optional WindowState)
    Dim hProg As Long
    Dim hProcess As Long, ExitCode As Long
    If IsMissing(WindowState) Then WindowState = 1
    hProg = Shell(PathName, WindowState)
    hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, hProg)
    Do
        GetExitCodeProcess hProcess, ExitCode
        DoEvents
    Loop While ExitCode = STILL_ACTIVE
End Sub

Sub Dezipper()

Dim CheminZip As String
Dim DossierUnZip As String
Dim FichierZip As Variant, ShellStr As String

CheminZip = "C:\program files\7-Zip\"

DossierUnZip = "C:\Users\scmario\Desktop\Images\"
FichierZip = "C:\Users\scmario\Desktop\Images\data.zip"
ShellStr = CheminZip & "7z.exe x -aoa -r" _
         & " " & Chr(34) & FichierZip & Chr(34) _
         & " -o" & Chr(34) & DossierUnZip & Chr(34) & " " & "*.*"

ShellAndWait , ShellStr, vbHide

End Sub
10pepite.xlsm (23.91 Ko)

bonjour,

enlève la première virgule dans l'instruction

ShellAndWait , ShellStr, vbHide
 

ainsi

ShellAndWait ShellStr, vbHide
 
h2so4 a écrit :

bonjour,

enlève la première virgule dans l'instruction

ShellAndWait , ShellStr, vbHide
 

ainsi

ShellAndWait ShellStr, vbHide
 

J'ai enlevé, j'ai désormais une autre erreur "Sub or Function not defined" sur "hProcess = Open Process (PROCESS_QUERY_INFORMATION, False, hProg)

re-bonjour,

essaie ceci

 

Sub Dezipper()

Dim CheminZip As String
Dim DossierUnZip As String
Dim FichierZip As Variant, ShellStr As String

CheminZip = "C:\program files\7-Zip\"

DossierUnZip = "C:\Users\scmario\Desktop\Images\"
FichierZip = "C:\Users\scmario\Desktop\Images\data.zip"
ShellStr = CheminZip & "7z.exe x -aoa -r" _
         & " " & Chr(34) & FichierZip & Chr(34) _
         & " -o" & Chr(34) & DossierUnZip & Chr(34) & " " & "*.*"

Shell  ShellStr, vbHide,true

End Sub

 
h2so4 a écrit :

re-bonjour,

essaie ceci

 

Sub Dezipper()

Dim CheminZip As String
Dim DossierUnZip As String
Dim FichierZip As Variant, ShellStr As String

CheminZip = "C:\program files\7-Zip\"

DossierUnZip = "C:\Users\scmario\Desktop\Images\"
FichierZip = "C:\Users\scmario\Desktop\Images\data.zip"
ShellStr = CheminZip & "7z.exe x -aoa -r" _
         & " " & Chr(34) & FichierZip & Chr(34) _
         & " -o" & Chr(34) & DossierUnZip & Chr(34) & " " & "*.*"

Shell  ShellStr, vbHide,true

End Sub

 

Bonjour,

Ca ne fonctionne pas non plus

Merci en tout cas de votre aide

bonjour,

as-tu un message d'erreur ? sinon

remplace le vbhide par vbMaximizedFocus dans l'instruction shell et regarde si tu as un message d'erreur lors de l'exécution de la commande unzip.

h2so4 a écrit :

bonjour,

as-tu un message d'erreur ? sinon

remplace le vbhide par vbMaximizedFocus dans l'instruction shell et regarde si tu as un message d'erreur lors de l'exécution de la commande unzip.

Grâce à vous (Merci) et "vbMaximizedFocus". Le code m'ouvre le programme 7-ZIP et la macro continue toujours de courir! Hors le but du programme est de faire ça automatiquement. Je ne comprends pas pourquoi ça ne se dézippe pas automatiquement.

Rechercher des sujets similaires à "macro court arrete fait rien"