OVH Cloud OVH Cloud

Besoin d'aide !!!!

6 réponses
Avatar
STEN
Bonjour, j'avais d=E9j=E0 poser la question dans un autre=20
message mais rest=E9 sans reponse.
J'ai besoin de vos lumi=E8res!
Comment faire =E0 l'aide d'une macro pour r=E9cuperer des=20
fichiers dans un repertoire afin de les compresser.
J'aimerai qu'une fois les fichiers compress=E9es l'archive=20
soit plac=E9e dans un dossiers que l'utilisateur cr=E9era par=20
l'interm=E9diaire d'un imputbox.
Merci pour votre aide a tous.

6 réponses

Avatar
Joel
Bonjour,

Cela ne m'étonne pas qu'aucune réponse n'ait été formulée.

Conseil, commence par poser la question :

est-il possible, à partir d'une macro, de compresser les fichiers se
trouvant dans un dossiers ? si oui, comment faire ?

Une fois que tu auras une réponse (positive, ce qui n'est pas gagné !), tu
pourras t'attaquer au reste du problème qui sera plus simple pour nous
autres, êtres qui ne savons répondre qu'à une question à la fois !

;-)

--

Bien cordialement,

Joël GARBE
www.joelgarbe.fr
"STEN" a écrit dans le message de
news:24d8d01c46022$f87cf5b0$
Bonjour, j'avais déjà poser la question dans un autre
message mais resté sans reponse.
J'ai besoin de vos lumières!
Comment faire à l'aide d'une macro pour récuperer des
fichiers dans un repertoire afin de les compresser.
J'aimerai qu'une fois les fichiers compressées l'archive
soit placée dans un dossiers que l'utilisateur créera par
l'intermédiaire d'un imputbox.
Merci pour votre aide a tous.
Avatar
michdenis
Bonjour Sten,

Voici un début de solution. Je n'ai pas la provenance et l'auteur dans mes notes !
L'adresse de son origine était : http://www.winzip.com/xcmdline.htm .... mais semble-t-il, elle n'est plus valide !
Mais avec comme répertoire zaza... l'auteur doit fréquenté MPFE ...;-)

'Déclaration globale, Haut d'un module standard
Public Const CheminWinZip = "C:Program FilesWinZip" 'Répertoire ou est installé Winzip

Sub Zip_Plusieurs_fichiers()
'Cette procédure va compresser les fichiers inclus dans le répertoire '"D:_poubelle75010199"
'et les placer dans l'archive "C:tmpzaza.zip" Const NomArchive = "C:tmpzaza.zip" 'Nom du fichier Zip a créer
Const QuelDossier = "D:_poubelle75010199" 'Nom du dossier qui comprend
'plusieurs fichiers à compresser( attention ne s'occupe pas des sous répertoires)

Shell (CheminWinZip & "winzip32.exe -a " & NomArchive & " " & QuelDossier) 'execution
End Sub


Salutations!



"STEN" a écrit dans le message de news:24d8d01c46022$f87cf5b0$
Bonjour, j'avais déjà poser la question dans un autre
message mais resté sans reponse.
J'ai besoin de vos lumières!
Comment faire à l'aide d'une macro pour récuperer des
fichiers dans un repertoire afin de les compresser.
J'aimerai qu'une fois les fichiers compressées l'archive
soit placée dans un dossiers que l'utilisateur créera par
l'intermédiaire d'un imputbox.
Merci pour votre aide a tous.
Avatar
denis
Bonjour,
va voir ce très bon lien :
http://perso.wanadoo.fr/frederic.sigonneau/
Il y a ce que tu cherches
(http://perso.wanadoo.fr/frederic.sigonneau/code/Excel/Comp
ressionFichiers.txt)

Denis
-----Message d'origine-----
Bonjour, j'avais déjà poser la question dans un autre
message mais resté sans reponse.
J'ai besoin de vos lumières!
Comment faire à l'aide d'une macro pour récuperer des
fichiers dans un repertoire afin de les compresser.
J'aimerai qu'une fois les fichiers compressées l'archive
soit placée dans un dossiers que l'utilisateur créera par
l'intermédiaire d'un imputbox.
Merci pour votre aide a tous.
.



Avatar
Hervé
Salut Sten,
Regarde si cela te convient. Exécute la proc "Zipper" pour tester :

Sub Zipper()
Dim TblFichiers() As String
Dim CheminDossier As String
Dim CheminArchive As String
Dim CheminTexte As String
Dim Annuler As Boolean

'dossier des fichiers à comprimer
'exemple : D:MonDossier1MonDossier2
CheminDossier = InputBox("Chemin du dossier contenant " _
& "les fichiers à compresser.")
If CheminDossier = "" Then Exit Sub

'chemin du dossier où mettre l'archive
'exemple : D:DossierZip
CheminArchive = InputBox("Chemin du dossier où " _
& "stocker l'archive.")

'si rien, met l'archive dans le dossier du classeur
'les deux fichiers sont nommés "Archive" par défaut
'à adapter
If CheminArchive = "" Then
CheminArchive = ThisWorkbook.Path & "Archive.zip"
CheminTexte = ThisWorkbook.Path & "Archive.txt"
Else
CheminTexte = CheminArchive
CheminArchive = CheminArchive & _
IIf(Right(CheminArchive, 1) = "", _
"Archive.zip", _
"Archive.zip")
CheminTexte = CheminTexte & _
IIf(Right(CheminTexte, 1) = "", _
"Archive.txt", _
"Archive.txt")
End If
'récupère les fichiers. Passe Annuler pour contrôler
'si il y a des fichiers
TblFichiers = Fichiers(CheminDossier, Annuler)

'si Annuler retourne à True, aucun fichier
'dans le dossier, donc fin
If Annuler = True Then
MsgBox "aucun fichier à comprimer dans " _
& "le dossier : '" & CheminDossier & "' !"
Exit Sub
End If

'construit le fichier texte utile à la compression
EcrireFichierTexte TblFichiers, _
CheminTexte

'zippe...
ZipperFichiers CheminTexte, CheminArchive
Erase TblFichiers
End Sub

Function Fichiers(Dossier As String, _
Annuler As Boolean) As String()
Dim TblFichiers() As String
Dim I As Long
'retourne tous les fichiers du dossier et sous-dossier(s)
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeAllFiles
'retourne tous les fichiers quels qu'ils soient
.Filename = "*.*"
.LookIn = Dossier
'mettre à False si pas les sous-dossiers
.SearchSubFolders = True
.Execute
With .FoundFiles
'si aucun fichier met Annuler à True, puis fin
If .Count = 0 Then
Annuler = True
Exit Function
End If
ReDim TblFichiers(1 To .Count)
For I = 1 To .Count
TblFichiers(I) = .Item(I)
Next I
End With
End With
Fichiers = TblFichiers

Erase TblFichiers
End Function


Sub EcrireFichierTexte(Fichier() As String, _
CheminFichTexte As String)
Dim I As Integer
Open CheminFichTexte For Output As #1
For I = 1 To UBound(Fichier)
Print #1, Fichier(I)
Next I
Close #1
End Sub

Sub ZipperFichiers(CheminFichierTexte As String, _
CheminArchive As String)
Dim CheminZippeur As String
Dim Zippeur As String
Dim ArchiveZip As String

CheminZippeur = "C:Program FilesWinZip"
Zippeur = "Winzip32.exe -a"

ArchiveZip = Chr(34) & CheminArchive & Chr(34)
Shell (CheminZippeur & _
Zippeur & " " & _
ArchiveZip & " @" & _
CheminFichierTexte)
End Sub

Hervé.

"STEN" a écrit dans le message news:
24d8d01c46022$f87cf5b0$
Bonjour, j'avais déjà poser la question dans un autre
message mais resté sans reponse.
J'ai besoin de vos lumières!
Comment faire à l'aide d'une macro pour récuperer des
fichiers dans un repertoire afin de les compresser.
J'aimerai qu'une fois les fichiers compressées l'archive
soit placée dans un dossiers que l'utilisateur créera par
l'intermédiaire d'un imputbox.
Merci pour votre aide a tous.
Avatar
Jacquouille
Salut
Cela ne sent pas un peu la banlieue nord de Paris, ce "Zaza" ? -))))
Même qu'on se demande comment elles vont, cette zaza et sa maîtresse.

--
Jacquouille conseille : http://www.excelabo.net


"michdenis" wrote in message
news:%
Bonjour Sten,

Voici un début de solution. Je n'ai pas la provenance et l'auteur dans
mes notes !

L'adresse de son origine était : http://www.winzip.com/xcmdline.htm ....
mais semble-t-il, elle n'est plus valide !

Mais avec comme répertoire zaza... l'auteur doit fréquenté MPFE ...;-)

'Déclaration globale, Haut d'un module standard
Public Const CheminWinZip = "C:Program FilesWinZip" 'Répertoire ou est
installé Winzip


Sub Zip_Plusieurs_fichiers()
'Cette procédure va compresser les fichiers inclus dans le répertoire
'"D:_poubelle75010199"

'et les placer dans l'archive "C:tmpzaza.zip" Const NomArchive "C:tmpzaza.zip" 'Nom du fichier Zip a créer
Const QuelDossier = "D:_poubelle75010199" 'Nom du dossier qui comprend
'plusieurs fichiers à compresser( attention ne s'occupe pas des sous
répertoires)


Shell (CheminWinZip & "winzip32.exe -a " & NomArchive & " " & QuelDossier)
'execution

End Sub


Salutations!



"STEN" a écrit dans le message de
news:24d8d01c46022$f87cf5b0$

Bonjour, j'avais déjà poser la question dans un autre
message mais resté sans reponse.
J'ai besoin de vos lumières!
Comment faire à l'aide d'une macro pour récuperer des
fichiers dans un repertoire afin de les compresser.
J'aimerai qu'une fois les fichiers compressées l'archive
soit placée dans un dossiers que l'utilisateur créera par
l'intermédiaire d'un imputbox.
Merci pour votre aide a tous.




Avatar
sabatier
ça sent même aussi la banlieue de lyon, jacquouille, car le LL était
aussi un gros utilisateur de cet animal domestique...
jps

Jacquouille a écrit:
Salut
Cela ne sent pas un peu la banlieue nord de Paris, ce "Zaza" ? -))))
Même qu'on se demande comment elles vont, cette zaza et sa maîtresse.