OVH Cloud OVH Cloud

Comment ziper un fichier

2 réponses
Avatar
TEV
Bonjour,

Je cherche à ziper à ziper plusieurs fichiers. Le code suivant ne marche pas
et j'aimerais savoir pour quel raison. Plutôt de me prendre le fichier
sélectionné il m'en sélectionne plusieurs (franchement, en plus je ne sais
pas trop lesquels) en prime le chemin que je lui indique ne le satisfait pas
puisqu'il me donne désespérément le chemin du dossier d'install de VB (pas
toujours non plus mais le plus souvent).

Voici le code :

Dim chemCible As String
Dim chemZip As String
Dim chemFichier As String
chemCible = "D:\Clients\Stephenson\Programme en cours\mjbd.zip"
chemFichier = "D:\Clients\Stephenson\Programme en cours\mjbd_1.txt"
chemZip = "C:\Program Files\WinZip\winzip32.exe" & " winzip32 -a"

Shell chemZip & chemCible & chemFichier

Christian.

2 réponses

Avatar
Hervé
Salut TEV,
Le problème vient entre autres du fait qu'il manque des espaces d'un coté et
qu'il y en a de trop de l'autre. Ci dessous 2 proc pour comprimer un ou
plusieurs fichiers. Pour plusieurs fichiers, il te faut créé un fichier
texte contenant le chemin complet de chaque fichier à compresser et cela 1
par ligne, exemple :
D:Dossier1MonFichier1.doc
D:Dossier1MonFichier2.xls
D:Dossier1MonFichier3.psp
Si tu ne connaîs pas à l'avance le nom de tes différents fichiers, crée
juste avant la compression le fichier avec la méthode Print :

Sub ZipperUnFichier()
Dim CheminZippeur As String
Dim Zippeur As String
Dim Fichier As String
Dim ArchiveZip As String
CheminZippeur = "C:Program FilesWinZip"
Zippeur = "Winzip32.exe -a"
'les Chr(34) évitent l'erreur dûe à la présence d'espace dans
'les nom de fichier à compresser et compressés
ArchiveZip = Chr(34) & "D:Mon fichier comprimer.zip" & Chr(34)
Fichier = Chr(34) & "D:Mon fichier à comprimer.doc" & Chr(34)

Shell (CheminZippeur & _
Zippeur & " " & _
ArchiveZip & " " & _
Fichier)

End Sub

Sub ZipperPlusieursFichiers()
Dim CheminZippeur As String
Dim CheminFichACompresser As String
Dim Zippeur As String
Dim Fichier As String
Dim ArchiveZip As String
CheminZippeur = "C:Program FilesWinZip"
Zippeur = "Winzip32.exe -a"
'dans un fichier texte, le chemin complet de chaque fichier
'à comprimer par ligne. exemple :
'D:Dossier1MonFichier1.doc
'D:Dossier1MonFichier2.xls
'D:Dossier1MonFichier3.psp
CheminFichACompresser = "D:FichierTexte.txt"

ArchiveZip = Chr(34) & "D:Mon fichier comprimer.zip" & Chr(34)

Shell (CheminZippeur & _
Zippeur & " " & _
ArchiveZip & " @" & _
CheminFichACompresser)
End Sub

Hervé.

"TEV" a écrit dans le message news:
3f8ebaf5$0$23295$
Bonjour,

Je cherche à ziper à ziper plusieurs fichiers. Le code suivant ne marche


pas
et j'aimerais savoir pour quel raison. Plutôt de me prendre le fichier
sélectionné il m'en sélectionne plusieurs (franchement, en plus je ne sais
pas trop lesquels) en prime le chemin que je lui indique ne le satisfait


pas
puisqu'il me donne désespérément le chemin du dossier d'install de VB (pas
toujours non plus mais le plus souvent).

Voici le code :

Dim chemCible As String
Dim chemZip As String
Dim chemFichier As String
chemCible = "D:ClientsStephensonProgramme en coursmjbd.zip"
chemFichier = "D:ClientsStephensonProgramme en coursmjbd_1.txt"
chemZip = "C:Program FilesWinZipwinzip32.exe" & " winzip32 -a"

Shell chemZip & chemCible & chemFichier

Christian.




Avatar
TEV
Effectivement cela marche parfaitement. Merci beaucoup pour ton aide.

Christian.

"Hervé" a écrit dans le message de news:
#
Salut TEV,
Le problème vient entre autres du fait qu'il manque des espaces d'un coté


et
qu'il y en a de trop de l'autre. Ci dessous 2 proc pour comprimer un ou
plusieurs fichiers. Pour plusieurs fichiers, il te faut créé un fichier
texte contenant le chemin complet de chaque fichier à compresser et cela 1
par ligne, exemple :
D:Dossier1MonFichier1.doc
D:Dossier1MonFichier2.xls
D:Dossier1MonFichier3.psp
Si tu ne connaîs pas à l'avance le nom de tes différents fichiers, crée
juste avant la compression le fichier avec la méthode Print :

Sub ZipperUnFichier()
Dim CheminZippeur As String
Dim Zippeur As String
Dim Fichier As String
Dim ArchiveZip As String
CheminZippeur = "C:Program FilesWinZip"
Zippeur = "Winzip32.exe -a"
'les Chr(34) évitent l'erreur dûe à la présence d'espace dans
'les nom de fichier à compresser et compressés
ArchiveZip = Chr(34) & "D:Mon fichier comprimer.zip" & Chr(34)
Fichier = Chr(34) & "D:Mon fichier à comprimer.doc" & Chr(34)

Shell (CheminZippeur & _
Zippeur & " " & _
ArchiveZip & " " & _
Fichier)

End Sub

Sub ZipperPlusieursFichiers()
Dim CheminZippeur As String
Dim CheminFichACompresser As String
Dim Zippeur As String
Dim Fichier As String
Dim ArchiveZip As String
CheminZippeur = "C:Program FilesWinZip"
Zippeur = "Winzip32.exe -a"
'dans un fichier texte, le chemin complet de chaque fichier
'à comprimer par ligne. exemple :
'D:Dossier1MonFichier1.doc
'D:Dossier1MonFichier2.xls
'D:Dossier1MonFichier3.psp
CheminFichACompresser = "D:FichierTexte.txt"

ArchiveZip = Chr(34) & "D:Mon fichier comprimer.zip" & Chr(34)

Shell (CheminZippeur & _
Zippeur & " " & _
ArchiveZip & " @" & _
CheminFichACompresser)
End Sub

Hervé.

"TEV" a écrit dans le message news:
3f8ebaf5$0$23295$
> Bonjour,
>
> Je cherche à ziper à ziper plusieurs fichiers. Le code suivant ne marche
pas
> et j'aimerais savoir pour quel raison. Plutôt de me prendre le fichier
> sélectionné il m'en sélectionne plusieurs (franchement, en plus je ne


sais
> pas trop lesquels) en prime le chemin que je lui indique ne le satisfait
pas
> puisqu'il me donne désespérément le chemin du dossier d'install de VB


(pas
> toujours non plus mais le plus souvent).
>
> Voici le code :
>
> Dim chemCible As String
> Dim chemZip As String
> Dim chemFichier As String
> chemCible = "D:ClientsStephensonProgramme en coursmjbd.zip"
> chemFichier = "D:ClientsStephensonProgramme en coursmjbd_1.txt"
> chemZip = "C:Program FilesWinZipwinzip32.exe" & " winzip32 -a"
>
> Shell chemZip & chemCible & chemFichier
>
> Christian.
>
>