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

Macros et VBA Excel Discussion :

dezipper des fichiers en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut dezipper des fichiers en vba
    Bonjour,

    Je cherche a dezippzer des fichiers et je bloque dans le code

    Chaque zip jopurnalier contient un seul fichier zippé (mais qui porte le meme nom : export_vente_du_jour.xlsx)

    voici le code que j'ai fait :

    Code VBA : 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
     
     
        Dim oShell As Object
        Dim pathFile As String
     
        'Récuperation de la liste des fichiers
        pathFile = Sheets("MENU").Range("K3")
        NomFichier = Dir(pathFile & "*.zip")
        pathFile2 = Sheets("MENU").Range("K2")
     
     
     
    myFile = Dir(pathFile & "\*.zip")
     
    Sheets("liste").Rows("2:200").Delete
    C = 2
    Do While myFile <> ""
        Sheets("Liste").Cells(C, 2) = myFile
        Sheets("Liste").Cells(C, 3) = Left(myFile, 15)
        Sheets("liste").Cells(C, 4) = Replace(myFile, "zip", "xlsx")
        Sheets("Liste").Cells(C, 5) = pathFile
        Sheets("Liste").Cells(C, 6) = pathFile2
        myFile = Dir()
        C = C + 1
    Loop
     
        'On passe d'un fichier excel a l'autre
        Set oShell = CreateObject("Shell.Application")
        Nb = Sheets("liste").Cells(Rows.Count, 2).End(xlUp).Row
        For L = 2 To Nb
            doszip = Sheets("Liste").Cells(L, 5)
            NomFichier = Sheets("Liste").Cells(L, 2)
            dosfile = Sheets("Liste").Cells(L, 6)
            name_file = Sheets("liste").Cells(C, 4)
            oShell.Namespace((pathFile2)).CopyHere oShell.Namespace((doszip & NomFichier)) '  -->>> TRES IMPORTANT : doubler les parenthèses sinon erreur
        Next
     
        Set oShell = Nothing

    J'aimerai pouvoir :
    - dezipper tous les fichiers zip du répertoire

    - renommer le fichier dezippé afin d'eviter qu il n'ecrase pas le précédent.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    sur le premier volet tu as de l'info dans a la
    https://access.developpez.com/faq/?page=ActionsRep#zip

    Pour éviter d'écraser des dossiers, il te suffit d'effectuer un test d'existence (mais tu ne précises pas la logique d'incrément - Dossier A devient-il Dossier A (1) ?)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 291
    Par défaut
    Bonjour
    Pour ma part, pour récupérer des données d'un fichier zippé je préfère passer par Power Query et cette fonction
    http://sql10.blogspot.com/2016/06/re...erquery-m.html
    je l'utilise régulièrement pour lire dans un ensemble de fichiers zip et combiner toutes les données. C'est très simple à mettre en œuvre.

    sinon, je trouve que zipper un fichier excel au format xlsx n'a pas trop d'intérêt car il est déjà zippé

    Stéphane

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Février 2014
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 326
    Par défaut
    j'ai une liste de fichiers zip dans le répertoire c:\temp\ZIP\

    les fichiers sont nommés yyyy-mm-dd_export_Data.zip
    le fichier contient un fichier export_datas.xlsx

    Je voudrais pouvoir dézipper les fichiers dans le répertoire c:\temp\FILES\
    Avec le nom yyyy-mm-dd_export_datas.xlsx

    Pour éviter d'écrase le fichier dézippé

Discussions similaires

  1. Dezipper des fichiers ZIP dans répertoire différent
    Par munity dans le forum VBA Access
    Réponses: 26
    Dernier message: 12/06/2018, 17h18
  2. Récupérer la liste des signets des fichier PDF dans EXCEL
    Par pio_killer dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2010, 13h35
  3. [VBA-W]prendre des valeurs "texte" dans Excel
    Par teromah dans le forum VBA Word
    Réponses: 12
    Dernier message: 14/06/2007, 16h20
  4. Réponses: 1
    Dernier message: 19/01/2006, 19h22
  5. [VBA Excel] Importer des tables Access dans Excel
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2005, 11h44

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