Placer des fichiers dans un zip

Salut,

J'arrive au bout de mon projet, tout tourne à peu près (du moins les fonctions indispensables, il reste du cosmétique mais ça urge pas).

Dans l'idée générale, j'ai un fichier Excel qui me sert de trame à partir de laquelle je crée des bons de lancement de visite de maintenance des avions de mon aéroclub.

La trame est le point d'entrée, elle me sert aussi bien à créer les bons de lancement qu'à remplir et fermer les compte rendus de travaux une fois la visite terminée.

Ces dossiers de visite doivent être archivés à 2 endroits différents :

  • sur le serveur de l'atelier de maintenance.
  • sur le serveur du gestionnaire de la flotte.

Dans la partie gestionnaire de la flotte, je voudrais que les fichiers correspondant à la visite soient archivés dans un dossier compressé. Il y a 3 dossiers pdf à chaque fois :

  • Le bon de lancement
  • Le compte rendu de travaux
  • Le statut avion mis à jour avec la maintenance réalisée pendant la visite.

En fouillant sur le net j'ai trouvé la routine pour créer le dossier compressé et y ajouter les fichiers voulus. Le fichier de base marche bien, mais une fois adaptée à mon projet ça ne marche plus...

Voilà ce que j'ai :

'Création du fichier zip

Close #1

Ca, ça marche, mon fichier zip est bien créé au bon endroit avec le nom que je veux.

'Copie des fichiers à archiver dans le zip

'ApplicationArchivage.Namespace(Archive_Zip).CopyHere Destination_Bon_de_lancement_pdf

Et ça ça ne marche plus.

Les variables Destination_Dossier_avion_pdf, Destination_Dossier_travaux_pdf et Destination_Bon_de_lancement_pdf sont correctement définies (ce sont celles qui me servent à importer les fichiers sur le serveur du gestionnaire de la flotte), je n'ai aucun message d'erreur, la macro continue de se dérouler, c'est juste que les fichiers concernés ne sont pas transférés dans le zip.

Est ce que vous auriez une solution ?

Merci d'avance.

Manu

Un petit up pour donner une réponse (peut être pas la bonne ni la seule mais bon).

Il semblerait que VBA se contente de lancer les actions sans en contrôler la bonne exécution avant de passer à la suivante.

Dans mon cas, avant d'archiver les 3 fichiers, je les copie dans le dossier. VBA lance la copie et ensuite l'archivage, mais il arrive que certains fichiers volumineux ne soient pas encore copiés au moment où l'archivage est lancé, ce qui fait que le fichier apparait introuvable.

Il arrive aussi qu'un fichier soit encore en cours d'archivage quand l'archivage du suivant est lancé. Dans ce cas, le dossier compressé est occupé et renvoie un message d'inaccessibilité.

Sur quelques dizaines de tests, j'avais entre 0 et 2 fichiers archivés correctement, de manière aléatoire. La parade que j'ai trouvé est de mettre une pause de 1 seconde entre chaque copie et chaque archivage. Les fichiers ont le temps de se copier, et d'être ajouté au dossier compressé 1 par 1 et maintenant ça marche à coup sûr.

Manu

Rechercher des sujets similaires à "placer fichiers zip"