IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Dézipper en VBA


Sujet :

VBA Outlook

  1. #1
    Membre du Club
    Profil pro
    développeur VBA
    Inscrit en
    Août 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : développeur VBA

    Informations forums :
    Inscription : Août 2006
    Messages : 57
    Points : 54
    Points
    54
    Par défaut Dézipper en VBA
    * Bonjour, *

    l'archive est déjà dans "C:\Divers"
    J'ai 7zip, le dossier zip et le dossier dézippé seront dans le dossier :C:\Divers
    le chemin pour 7zip est C:\Programmes\7zipM.exe

    et pourtant le programme me dit erreur de chemin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Shell ("C:\Programmes\7zipM.exe -e """ & "C:\Divers"&"Archive.zip" & """ """ & C:\Divers
    & """")
    merci de votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Il y a une solution en utilisant les possibilités de Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim osa As Shell
    Set osa = New Shell
    osa.Namespace(xrDec).CopyHere osa.Namespace(nfZip).Items
    Set osa = Nothing
    Il faut penser à ajouter la référence "Microsoft Shell Controls and Automation"
    xrDec = répertoire de destination
    nfZip = nom complet du fichier zip (type variant obligatoire)
    A+
    Thierry

  3. #3
    Membre du Club
    Profil pro
    développeur VBA
    Inscrit en
    Août 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : développeur VBA

    Informations forums :
    Inscription : Août 2006
    Messages : 57
    Points : 54
    Points
    54
    Par défaut
    Bonjour,
    La réponse de Thierry ne m'a pas donné la solution mais je l'ai trouvé sur le web.
    Je me dois donc de vous la donner.
    J'ai 7-zip.

    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
     
    Public Nom As String
     
     
    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 PROCESS_QUERY_INFORMATION = &H400
    Public Const STILL_ACTIVE = &H103
     
    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\"
        If Right(CheminZip, 1) <> "\" Then
            CheminZip = CheminZip & "\"
        End If
     
        If Dir(CheminZip & "7z.exe") = "" Then
            Exit Sub
        End If
     
     
        DossierUnZip = "C:\Divers\Archives\"
        FichierZip = "C:\Divers\Archives\" & Nom
        ShellStr = CheminZip & "7z.exe x -aoa -r" _
                 & " " & Chr(34) & FichierZip & Chr(34) _
                 & " -o" & Chr(34) & DossierUnZip & Chr(34) & " " & "*.*"
     
        ShellAndWait ShellStr, vbHide
     
    End Sub:)

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Merci beaucoup ça fait des semaines que je cherche une solution pour dézipper et rien ne marche (que du winzip au lieu de 7-zip).
    Je ne comprends pas tout à la macro mais elle fonctionne et c bien là l'essentiel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. dézipper un fichier avec vba
    Par Echizen1 dans le forum Contribuez
    Réponses: 3
    Dernier message: 06/02/2007, 10h23
  2. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  3. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19
  4. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  5. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo