Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateien eines Ordners packen

Dateien eines Ordners packen
16.02.2005 19:58:25
Claus
Moin Leute,
ich habe mir die Aufgabe gestellt, Dateien eines Firmentools platzsparend zu archivieren.
Die Dateien werden aus einem Tool heraus automatisch erstellt und in einem Ordner abgelegt. Das sieht so aus:
Ordner/Datei1 Datei2 Datei3 usw.
ABL140205/abc.ctw - dtf.ctw - trw.ctw
Kann ich über VBA ein Tool entwerfen, das Dateien in einem Ordner zu einer Zip-Datei zusammenfaßt und dieser Zip-Datei den Namen des Ordners gibt?
Also so:
ABL140205.zip
Ich habe bereits eine Einleseroutine erstellt (mit viel Hilfe), weiß allerdings nicht, wie ich aus Excel das Programm Winzip ansteuern kann....
https://www.herber.de/bbs/user/18209.xls
Falls jemand zu diesem schwierigen Problem eine Idee hat...Herzlich willkommen...
Gruß, Claus
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vieleicht hilft das
16.02.2005 21:26:37
chris
Vieleicht hilft dir das ? !
Sorry mehr hab und weiß ich auch nicht !

Sub Oeffnen()
Dim dName$, ZipPfad$, Pfad$
Pfad = "c:\excel\"
dName = "Test"
ZipPfad = "c:\programme\winzip\winzip32.exe"
Shell ZipPfad & " -e " & Pfad & dName & ".zip"
Application.Wait Now + TimeSerial(0, 0, 2)
Workbooks.Open Pfad & dName & ".xls"
On Error Resume Next
End Sub

Anzeige
AW: Dateien eines Ordners packen
16.02.2005 21:37:35
Nepumuk
Hallo Claus,
kein Problem. Suche im Netz nach der Datei "zip32.dll". Lade sie die herunter und speichere sie im Windows-Systemordner z.B. für Window2000: C:\WINNT\system32 Wenn du deinen Systemordner nicht kennst, lass folgendes Programm laufen:


Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" _
    (ByVal lpBuffer As StringByVal nSize As LongAs Long
Public Sub anzeigen()
    Dim strBuffer As String * 255, strSysDir As String, lngReturn As Long
    lngReturn = GetSystemDirectory(strBuffer, 255)
    MsgBox Left$(strBuffer, lngReturn)
End Sub


Willst du mit dieser VBA-Routine die Dateien auch wieder entpacken? Dann benötigst du zusätzlich die Datei "unzip32.dll".
Wenn du das hast, dann erklär mir noch, wozu die Auflistung in der Exceltabelle dient. Denn beim zippen eines Ordners werden alle Dateien die sich darin befinden gepackt. Nicht nur Worddateien oder Exceldateien. Du kannst mit deinen Hyperlinks auch nicht auf die gepackten Dateien zugreifen.
Es ist auch noch nicht geklärt, wo die ZIP - Dateien gespeichert werden sollen und ob die Dateien automatisch gelöscht werden sollen.
Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dateien eines Ordners packen


Schritt-für-Schritt-Anleitung

Um Dateien eines Ordners in eine Zip-Datei zu packen, kannst Du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Modul hinzufügen: Klicke im Menü auf Einfügen und wähle Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub DateienZippen()
        Dim dName As String
        Dim ZipPfad As String
        Dim Pfad As String
    
        Pfad = "C:\dein\ordner\"
        dName = "DeinOrdnerName"
        ZipPfad = "C:\Programme\WinZip\winzip32.exe"
    
        Shell ZipPfad & " -e " & Pfad & dName & ".zip"
        Application.Wait Now + TimeSerial(0, 0, 2)
    End Sub
  4. Anpassen: Ändere die Variablen Pfad und dName entsprechend Deinem Ordner und dem gewünschten Zip-Dateinamen.

  5. Ausführen: Führe das Makro aus, um die Dateien zu packen.

Mit diesem Makro kannst Du einfach die Dateien in Zip verpacken und somit Platz auf Deinem Speicher sparen.


Häufige Fehler und Lösungen

  • Fehler: "WinZip nicht gefunden"

    • Lösung: Stelle sicher, dass der Pfad zur WinZip-Installation korrekt ist. Überprüfe auch, ob WinZip tatsächlich installiert ist.
  • Fehler: Zip-Datei wird nicht erstellt

    • Lösung: Überprüfe die Berechtigungen des Ordners, in dem Du die Zip-Datei speichern möchtest. Stelle sicher, dass Du Schreibrechte hast.
  • Frage: Wo werden Zip-Dateien gespeichert?

    • Antwort: Die Zip-Dateien werden im Pfad gespeichert, den Du im Code angegeben hast. Achte darauf, diesen Pfad richtig zu setzen.

Alternative Methoden

Falls Du kein WinZip verwenden möchtest, gibt es auch andere Möglichkeiten, um Dateien in Zip-Dateien zu verpacken:

  1. Windows Explorer: Du kannst die gewünschten Dateien einfach im Windows Explorer markieren, mit der rechten Maustaste klicken und "Senden an" > "ZIP-komprimierter Ordner" auswählen.

  2. PowerShell: Wenn Du mit PowerShell vertraut bist, kannst Du die Compress-Archive-Cmdlet verwenden:

    Compress-Archive -Path "C:\dein\ordner\*" -DestinationPath "C:\dein\zielordner\DeinOrdnerName.zip"
  3. Dritte-Party-Tools: Es gibt viele kostenlose Tools wie 7-Zip, mit denen Du ebenfalls Dateien packen kannst.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele für das Packen von Dateien mit VBA:

  • Projektarchivierung: Wenn Du an einem Projekt arbeitest, kannst Du alle relevanten Dateien in einen Ordner packen und diesen als Zip-Datei speichern, um die Übersicht zu behalten.

  • Backup von Berichten: Erstelle regelmäßig Zip-Backups Deiner Excel-Dateien, um Speicherplatz zu sparen und die Dateien sicher zu archivieren.

  • Versenden von Dateien: Wenn Du mehrere Dateien per E-Mail versenden möchtest, kannst Du diese zuerst in eine Zip-Datei packen, um die Dateigröße zu reduzieren.


Tipps für Profis

  • Automatisierung: Du kannst das Zippen der Dateien automatisieren, indem Du das VBA-Skript in einer regelmäßigen Zeitspanne laufen lässt (z.B. durch einen Timer).

  • Dateiüberprüfung: Füge einen Code hinzu, der überprüft, ob die Dateien erfolgreich gepackt wurden, bevor Du sie weiterverwendest.

  • Anpassen der Zip-Optionen: Je nach verwendeter Software (z.B. 7-Zip) kannst Du die Komprimierungsstufe und andere Optionen anpassen, um die Effizienz zu verbessern.


FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere Ordner gleichzeitig zippen?
Antwort: Du müsstest eine Schleife in Deinem VBA-Code implementieren, die jeden Ordner durchläuft und als Zip-Datei speichert.

2. Frage
Kann ich Excel-Dateien direkt in Zip umwandeln?
Antwort: Ja, Du kannst die Excel-Dateien direkt als Zip-Datei speichern, indem Du die entsprechenden VBA-Befehle verwendest.

3. Frage
Wie kann ich sicherstellen, dass die Zip-Datei nach dem Erstellen gelöscht wird?
Antwort: Du kannst im VBA-Code nach dem Erstellen der Zip-Datei die Originaldateien mit Kill löschen. Achte darauf, dies nur zu tun, wenn Du sicher bist, dass die Zip-Datei korrekt erstellt wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige