VBA et Zip: compresser et décompresser des fichiers

Le VBA, en tant que langage de script de Windows nous permet d'utiliser d'autres applications (qui ne font pas partie de la suite Microsoft Office) ce qui ouvre toute une gamme de possibilités supplémentaires à la programmation en VBA. Ce qui nous intéresse ici est comment gérer des fichiers Zip en VBA.

Les codes VBA qui suivent permettent de compresser et décompresser les fichiers via le WinZip (le programme d'archivage par défaut dans Windows). Vous pouvez donc utiliser Excel comme interface pour automatiser l'archivage (et désarchivage) de tout type de fichier – fichiers texte, fichiers Word, etc.

Je vous propose quatre codes VBA différents, tous les quatre prêts à l'utilisation – il suffit simplement de les copier/coller dans votre macro et changer les noms de fichiers à utiliser.

Archiver/compresser un fichier avec VBA

Ceci est le code VBA de base qui vous permet d'archiver un fichier. Il suffit d'indiquer le nom du fichier à archiver et le nom de l'archive. Par défaut, si l'archive mentionné existe déjà, la macro va l'effacer avant de le recréer.

 

Copier un fichier vers un archive existant

Le code suivant vous permet de copier un fichier (par exemple un document Word ou un PDF) dans un archive existant. Cela implique que le fichier original sera ajouté à l'archive mais restera également dans sa forme originale (non-compressée) à l'endroit d'origine.

 

Déplacer un fichier vers un archive existant

Il s'agit de la modification du code précédent. Cette fois-ci, le fichier d'origine est déplacé dans l'archive existant. Cela veut donc dire que le fichier d'origine (le fichier non-compressé) ne restera pas à sa place initiale – le seul exemplaire de ce fichier se trouvera compressé dans l'archive mentionné.

 

Décompresser le contenu d'un archive Zip avec VBA

Après la compression (archivage), voici le code VBA qui vous permettra d'extraire le contenu d'un archive Zip. Il suffit d'indiquer le nom et l'emplacement de l'archive ainsi que le dossier dans lequel le contenu doit être décompressé…

Attention: ce code ne supprime pas l'archive de départ. Vous aurez donc toujours votre archive + une copie décompressée de tout son contenu qui se trouvera dans le dossier de votre choix.

 

Utilisation avancée de compression et décompression Zip en VBA

Les codes que vous venez de voir constituent la base – il est possible de les développer et combiner pour en faire une solution tout à fait automatisée. Voici quelques indications pour vous permettre de "personnaliser" le code:

 

Vous trouverez d'autres informations intéressantes sur l'archivage en VBA sur le site de Ron de Bruin (par exemple archivage avec le logiciel 7-Zip). Le site est en anglais.

Pour aller plus loin…

D'autres articles sur Excel-Malin.com pourraient également vous intéresser:

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

16 commentaires sur “VBA et Zip: compresser et décompresser des fichiers”