compresser un fichier excel

daronne

XLDnaute Nouveau
Bonjour à tous,
je sollicite votre aide afin de résoudre le problème suivant:
je travaille dans un environnement où il est important que le fichier que j'ai créé et qui va être beaucoup utilisé ne prenne pas beaucoup de place.
Mon but est donc de pouvoir le compresser automatiquement à l'aide d'une macro. J'ai essayé de le faire en faisant un test dans un classeur vierge et en ecrivant le code suivant:

Sub auto_open()

DBEngine.CompactDatabase "P:\Chiffons\serviettes\nom du fichier à compresser", "P:\Chiffons\serviettes\nom du fichier compressé"

End Sub


En exécutant cela, on me renvoie ce message d'erreur:
Erreur d'exécution '424'
Objet requis

Pourquoi? quel objet dois-je mettre?
Existe-t-il une autre manière de compresser un fichier? peut être directement du fichier qui doit l'être?...

Merci d'avance pour votre aide!
 

tototiti2008

XLDnaute Barbatruc
Re : compresser un fichier excel

autant que je sache, DBEngine.CompactDatabase ne fonctionne que sur Access. Je ne connais pas de méthode de compactage de fichiers excel intégé à Excel (ou alors en Excel 2007 peut-être ?).
A part des méthodes de compactage de lecteur réseau (vois avec ton administrateur) je ne vois pas vraiment comment faire.
 

Sly le globe trotter

XLDnaute Occasionnel
Re : compresser un fichier excel

Bonjour,

J'ai créé un post hier sur ce sujet... Je me permets de mettre le lien ci dessous
https://www.excel-downloads.com/threads/compression-de-fichiers.97527/

Pour compresser un fichier, je passe par la commande shell et le logiciel de compression utilisé sur mon pc.
Cependant, un problème... Je n'arrive à compresser un fichier dont le chemin complet comporte des espaces...

Je suis preneur de toute info ;)
 

MichelXld

XLDnaute Barbatruc
Re : compresser un fichier excel

bonsoir

si tu disposes de WinXP :

Code:
Sub ZipFichier()
    Dim oShell As Object, Fso As Object
    Dim i As Long
    Dim Fichier As String, MyBinary As String
    Dim LeZip As Variant
    Dim MyHex As Variant
    
    Fichier = "C:\le classeur.xls"
    LeZip = "C:\Ma sauvegarde.zip"
     
    Set Fso = CreateObject("Scripting.FileSystemObject")
    MyHex = _
        Array(80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
    
    For i = 0 To UBound(MyHex)
        MyBinary = MyBinary & Chr(MyHex(i))
    Next
    
    With Fso.CreateTextFile(LeZip, True)
        .Write MyBinary
        .Close
    End With
    
    Set oShell = CreateObject("Shell.Application")
    oShell.NameSpace(LeZip).CopyHere (Fichier)
    
    Set oShell = Nothing
End Sub


bonne soirée
michel
 

Sly le globe trotter

XLDnaute Occasionnel
Re : compresser un fichier excel

Bonjour MichelXLD,

Merci pour ton aide !
Sinon, en se servant de ZipGenius, j'ai réussi à trouver la commande employer
Code:
Shell (CheminZipGenius & "zg.exe -add" & " " & """" & ChArchive & """" & " " & """" & FileToZip & """" & " -N -9")

Merci !
 

mikado92250

XLDnaute Nouveau
Re : compresser un fichier excel

Bonjour,
ce fichier n'a pas été utilisé, mais c'est celui que je cherchais...

Etant nouvel inscrit sur le Forum, je trouve déjà ce que je veux...c'est une bonne entrée en matière pour le site d'Excel Downloads
Merci Michel
 

Discussions similaires

Réponses
9
Affichages
157

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN