Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Yaloo

XLDnaute Barbatruc
Bonjour à tous,

Je fais suite à ce post où la réponse correspond bien à ma demande.

Je souhaite faire un fichier zip, contenant un répertoire avec plusieurs sous-répertoire et le fichier qui contient la macro.

En fait, je pensais qu'en réalisant un zip du répertoire mon fichier allait se retrouver dedans, mais que nenni, mon fichier ne se retrouve pas dans le zip.

En gros, j'ai ça :
Repertoire
----Sous-rep 1
----Sous-rep 2
----Sous-rep 2
----Zipper un répertoire.xlsm

Avec la macro ci-dessous, j'obtiens ça :
Repertoire
----Sous-rep 1
----Sous-rep 2
----Sous-rep 2

Voici la macro
VB:
Private Sub CommandButton1_Click()
RepBase = Mid(ThisWorkbook.Path, 1, InStrRev(ThisWorkbook.Path, "\") - 1) & "\"
If RepBase = "V:\" Then
  ChDrive "V"
  ChDir RepBase
  Shell "V:\7-Zip\7z.exe a -tzip essai.zip  ""V:\essai\"""
ElseIf RepBase = "C:\" Then
  ChDir RepBase
  Shell "C:\Program Files\7-Zip\7z.exe a -tzip essai.zip  ""C:\essai\"""
End If
  Anc = RepBase & "essai.zip"
  Nouv = RepBase & "essai " & Format(Date, "yymmdd") & ".zip"
  Name Anc As Nouv
'...Le reste de ma procédure
End Sub

J'avais pensé faire un autre classeur pour lancer la procédure de Zip mais cela m'oblige à fermer mon classeur actif et donc difficile de lancer le reste de ma procédure.

Je ne m'y prend sûrement pas bien, faut-il lancer la macro d'un autre fichier ? Mais dans ce cas-là, comment lancer le reste de ma procédure.

Merci d'avance pour vos réponses.

Yaloo

PS : si vous avez d'autres solutions sans passer par 7-Zip, je suis preneur.
 

Pièces jointes

  • essai.zip
    34.1 KB · Affichages: 85
  • essai.zip
    34.1 KB · Affichages: 51
  • essai.zip
    34.1 KB · Affichages: 51

BrunoM45

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Bonsoir Yaloo,

Il faut simplement réfléchir un peu ;)
Si tu lances la procédure d'un fichier qui est ouvert, il se trouve donc en lecture seule

Pour moi, tu es obligé de lancer ta procédure dans un autre classeur

A+
 

Yaloo

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Bonsoir Bruno et merci pour ta réponse,

C'était bien ce à quoi j'étais arrivé.:eek:

Il faudrait donc, depuis mon fichier :

1 - J'ouvre mon 2ème fichier.
2 - Avec Workbook_Open() de mon 2ème fichier, est-ce je peux fermer le premier ? Je ne pense pas puisque la 1 ère procédure n'est pas terminée. (dis-moi si je dis une annerie) :confused: Est-ce possible avec une temporisation ? :confused:
3 - Je fais mon Zip depuis mon 2 ème fichier.
4 - J'ouvre mon 1er fichier.
5 - Je lance le reste de ma procédure depuis mon 2 ème fichier.
6 - Je ferme mon 2 ème fichier

C'est vraiment le point 2 qui ne peut pas aller.

Y-a-t-il une autre solution ?
Peut-on faire, par exemple, une copie du répertoire (non zippée), puis le zipper par la suite ?

Yaloo
 

BrunoM45

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Salut Yaloo,

J'ai vérifié, le problème c'est qu'en lançant le code dans le classeur2 depuis le classeur1
celui-ci s'arrête quand classeur1 se ferme (se qui me parait logique)

En revanche, j'ai vérifié également en lançant la compression d'un dossier dans lequel j'ai un fichier ouvert
Avec iZarc ça fonctionne, le fichier est bien dans le dossier compressé !

Comme je n'ai pas 7-zip et que je n'ai pas envie de l'installer :eek:
je ne pourrais pas t'aider d'avantage

A+
 

Yaloo

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Salut Bruno,

Merci de te donner de la peine pour ma demande.

Chez moi, j'ai 7-zip et iZarc, j'avais essayé 7-zip parce que j'avais trouvé la ligne de commande pour lancer de VBA.

Par contre je n'avais rien trouvé pour iZarc. Quand tu dis avoir fais ton test, c'était directement avec iZarc ou en lançant une macro depuis Excel ?
Si c'est la 2 ème solution, pourrais-tu me passer le code pour le faire ? Ou un lien me permettant de le faire ?

Merci d'avance

Yaloo
 

BrunoM45

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Re,

C'était directement depuis Izarc, mais ça devrait marcher en ligne de commande, il n'y a pas de raison

Tu dois d'abord télécharger : IZArc Command Line Add-On
Pour l'instruction, voir fichier joint ;)

A+
 

Pièces jointes

  • Izarc_CL.txt
    1.3 KB · Affichages: 108

Yaloo

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Bonsoir à tous,

Bon je viens d'essayer mais je n'y arrive pas.

J'ai essayé plusieurs solutions dont celle ci-dessous :
Shell "C:\Program Files\IZArc\IZARCC.exe a essai.zip ""C:\essai\"""
Avec celle-là ça a fonctionné une fois puis plus rien, je n'y comprends plus rien.
Si qq'un connait, je suis preneur.

Bruno, as-tu essayé en ligne de commande ?

Yaloo
 

Yaloo

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Bonjour à tous,

J'ai fais beaucoup de test et ça ne fonctionne toujours pas.

Comme iZarcc est en ligne de commande je me suis dis qu'avec la console CMD ça devrait marcher. Voici mon test

Test IZARCC.jpg

D'après ce que l'on vois, le fichier semble être créé, et bien je n'arrive pas à le retrouver sur mon PC, j'ai cherché partout, dans tous les répertoires, avec les "fichiers cachés" visibles.

Quelqu'un aurait-il une idée ?

Merci d'avance

Yaloo
 

Yaloo

XLDnaute Barbatruc
Re : Zipper un dossier dont le fichier contenant st trouve dans ce répertoire

Re,

J'ai trouvé la solution, non sans mal (puisque c'était IZARCC qui était mal installé), je vous mets mon fichier pour ceux que cela intéresserait

Merci encore à Bruno qui a pris de son temps pour m'aider.

Yaloo
 

Pièces jointes

  • Essai1.zip
    34.7 KB · Affichages: 74
  • Essai1.zip
    34.7 KB · Affichages: 80
  • Essai1.zip
    34.7 KB · Affichages: 80

Discussions similaires

Statistiques des forums

Discussions
299 850
Messages
1 979 570
Membres
206 781
dernier inscrit
BERTÉ