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 :

[Débutant] Compresser des fichiers [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Par défaut [Débutant] Compresser des fichiers
    Bonjour à toutes et tous, novice, j'aimerai un coup de pouce sur:
    J'ai un répertoire avec de nombreux .csv et j'aimerai compresser dans un autre répertoire, chaque fichier dans une archive du même nom en .zip.

    J'ai ceci qui fonctionne, mais pour un fichier nommé.

    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
    'définition des variables
        Dim ApplicationArchivage As Object
        Dim FichierAArchiver, FichierZip
     
    'informations sur les fichiers (chemins & noms)
        FichierAArchiver = "\\i...\csv\wkb400-599.csv"
        FichierZip = "\\i...\zip\MonArchive_1.zip"
     
    'créer une nouvelle archive
        If Len(Dir(FichierZip)) > 0 Then Kill FichierZip 'supprime l'archive s'il existe déjà
        Open FichierZip For Output As #1
            Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)
        Close #1
     
    'copier le fichier à archiver dans l'archive
        Set ApplicationArchivage = CreateObject("Shell.Application")
        ApplicationArchivage.Namespace(FichierZip).CopyHere FichierAArchiver
     
    'Message final
        MsgBox "L'archivage a été lancé..."



    Merci de votre aide, de votre aiguillage et de votre bienveillance.

  2. #2
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,

    transforme ton sub pour qu'il prenne les noms de fichiers en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub CompresserFichier(FichierAarchiver as String, FichierZip as String)
    ...
    End Sub
    Puis appelle-le depuis une boucle qui parcourt le dossier source (non testé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub CompresserDossier(ByVal NomDossierCSV as string, ByVal NomDossierZip as string)
    Dim NomFichier as string
    If Right(NomDossierCSV,1) <> "\" then NomDossierCSV= NomDossierCSV& "\"
    If Right(NomDossierZip,1) <> "\" then NomDossierZip= NomDossierZip& "\"
    NomFichier = Dir (NomDossierCSV& "*.CSV")
    While NomFichier <> ""
        CompresserFichier NomDossierCSV & NomFichier, NomDossierZIP & Left(NomFichier, len(NomFichier)-4) & ".zip"
        NomFichier=Dir()
    Wend
    End Sub
    Après quoi tu n'auras plus qu'à l'appeler par exemple par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CompresserDossier "\\i...\csv\", "\\i...\zip\"
    Sauf que ça ne v pas marcher à cause du If Len(Dir(FichierZip)) > 0 qui va se télescoper avec le Dir() de l'appelant.
    Donc il restera à lire et appliquer ce qui est raconté ici : https://www.developpez.net/forums/d2.../#post11921779

  3. #3
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Par défaut
    Un grand merci @Tête de chat.

    Je vais lire ton autre post sur le DIR().

  4. #4
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Par défaut
    Quand je lance la fonction, il y a une erreur de syntaxe.

    code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Right(NomDossierCSV,1) <> "\" then NomDossierCSV= NomDossierCSV& "\"  
    If Right(NomDossierZip,1) <> "\" then NomDossierZip= NomDossierZip& "\"
    NomFichier = Dir (NomDossierCSV& "*.CSV")

  5. #5
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Ajoute une espace avant les &

  6. #6
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2023
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2023
    Messages : 14
    Par défaut
    Merci

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

Discussions similaires

  1. Compresser des fichiers
    Par Coin dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 19/05/2008, 14h08
  2. de/compresser des fichiers
    Par kacedda dans le forum MFC
    Réponses: 7
    Dernier message: 27/02/2007, 12h53
  3. Compresser des fichiers dans un tar.gz
    Par GabriHell dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2006, 16h20
  4. [Débutante]Stocker des fichiers dans une BD
    Par bouba83 dans le forum Access
    Réponses: 5
    Dernier message: 19/05/2006, 08h41

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