Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zip-Datei mit 7-zip entpacken

VBA Zip-Datei mit 7-zip entpacken
28.01.2021 10:12:22
Peter
Liebe Fan-Gemeine,
ich möchte gern per Makro und 7zip eine Datei in einem anderen Ordner entpacken, klappt nicht. Per Batch ist das kein Problem.
Zu diesem Thema sind schon viele Beiträge erschienen. Aber ich bitte Euch, mal die Datei anzuschauen. Nähere Erklärungen dann vom Programm "Test" selbst.
Vielen Dank und Gruß aus dem Norden
Peter
https://www.herber.de/bbs/user/143367.zip
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zip-Datei mit 7-zip entpacken
28.01.2021 10:50:55
peterk
Hallo

Sub UnZIP_Lieferschein()
With ThisWorkbook
Pfad = .Path & "\"
End With
Jahr = Year(Range("B2").Value)
O_Ordner = Pfad & "Backup\Lieferschein " & Jahr & "\"  ' hier fehlte der \
Z_Datei = Pfad & "HLG Lieferschein " & Jahr & ".zip"   ' Du hattest HLG-Lieferschein
Shell "7z x -y  """ & Z_Datei & """ -o""" & O_Ordner & """" ' kein Leerzeichen nach -o
End Sub
Peter
Anzeige
AW: Shell: NameSpace
28.01.2021 10:55:47
Fennek
Hallo,
hier ein Beispiel wie der Zip-Container einer Excel-Datei ausgelesen werden kann:

Pt_Fl = Application.GetOpenFilename()
Fl = Dir(Pt_Fl)
Pt = Replace(Pt_Fl, Fl, "")
With CreateObject("shell.application").Namespace(Pt)
For i = 0 To 300 ' "" Then Debug.Print i, .getDetailsOf(Fl, i), Tx
Next i
End With
Ob heutige AV-Programme das noch durchlassen, mußt du testen.
Eine Web-Suchen nach "Excel zip" sollte zu dem Holländer "DeBroi" oder so ähnlich führen.
mfg
Anzeige
AW: Shell: NameSpace
01.02.2021 17:02:50
Peter
Hallo Fennek,
leider hat es mit den Erklärungen nicht/nicht geklappt. Die Seite von "DeBroi" hatte ich auch schon gefunden, aber die Makros sind mir etwas zu groß.
Ich habe mich dann für die Batch-Version entschieden.
Hier mal das aufrufende Makro:

With ThisWorkbook
Pfad = .Path & "\"
End With
ChDrive Left(Pfad, 3)
ChDir Pfad
Call Shell(Pfad & "Backup\UnZIP-Lieferschein.bat", 1)
Und hier mal dir Batch-Datei:

@echo off
set Jahr=%date:~6,4%
set Z_Datei="HLG-Lieferschein %Jahr%.zip"
set O_Ordner="Backup\HLG-Lieferschein %Jahr%"
7z x -y %Z_Datei% -o%O_Ordner%
set Z_Datei="..\HLG-Lieferschein %Jahr%.zip"
set O_Ordner="HLG-Lieferschein %Jahr%"
7z x -y %Z_Datei% -o%O_Ordner%
Die Batch-Datei befindet sich im Ordner Backup und kann vom Programm sowie auch von Hand gestartet werden.
Das funktioniert, solange mir keiner die Batch löscht. Aber ich habe alles gesichert ;-)
Vielen Dank für Deine Hilfe!
Gruß aus dem hohen Norden
Peter
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA mit 7zip: Zip-Datei entpacken


Schritt-für-Schritt-Anleitung

Um eine .zip-Datei mit 7zip in VBA zu entpacken, befolge diese Schritte:

  1. Installiere 7zip: Stelle sicher, dass 7zip auf deinem Computer installiert ist und dass der Pfad zur 7zip-Exe in deinen Umgebungsvariablen enthalten ist.

  2. Öffne Excel: Starte Excel und öffne das VBA-Editor-Fenster (Alt + F11).

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deinWorkbookName)", wähle „Einfügen“ und dann „Modul“.

  4. Füge den folgenden VBA-Code ein:

    Sub UnZIP_Lieferschein()
       With ThisWorkbook
           Pfad = .Path & "\"
       End With
       Jahr = Year(Range("B2").Value)
       O_Ordner = Pfad & "Backup\Lieferschein " & Jahr & "\"  ' hier fehlte der \
       Z_Datei = Pfad & "HLG Lieferschein " & Jahr & ".zip"   ' Du hattest HLG-Lieferschein
       Shell "7z x -y """ & Z_Datei & """ -o""" & O_Ordner & """" ' kein Leerzeichen nach -o
    End Sub
  5. Führe das Makro aus: Drücke F5 oder wähle das Makro aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: Pfad nicht gefunden
    Lösung: Überprüfe, ob der Pfad zur Zip-Datei korrekt ist und ob die Datei existiert.

  • Fehler: 7zip nicht gefunden
    Lösung: Stelle sicher, dass 7zip installiert ist und der Pfad zur 7z.exe in den Umgebungsvariablen enthalten ist.

  • Fehler: Entpacken schlägt fehl
    Lösung: Prüfe, ob die Zip-Datei möglicherweise beschädigt ist oder ob die Zielordnerstruktur korrekt ist.


Alternative Methoden

Wenn du die Zip-Datei lieber ohne VBA entpacken möchtest, kannst du auch die Batch-Datei nutzen. Hier ein einfaches Beispiel:

  1. Erstelle eine Batch-Datei (UnZIP-Lieferschein.bat) mit folgendem Inhalt:

    @echo off
    set Jahr=%date:~6,4%
    set Z_Datei="HLG-Lieferschein %Jahr%.zip"
    set O_Ordner="Backup\HLG-Lieferschein %Jahr%"
    7z x -y %Z_Datei% -o%O_Ordner%
  2. Führe die Batch-Datei direkt aus oder rufe sie über VBA auf:

    Call Shell(Pfad & "Backup\UnZIP-Lieferschein.bat", 1)

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du mit 7zip verschiedene Dateiformate entpacken kannst:

  • Entpacken einer 7z-Datei:

    Shell "7z x -y """ & "deineDatei.7z" & """ -o""" & "ZielOrdner" & """"
  • Entpacken mehrerer Zip-Dateien:

    Dim datei As String
    datei = Dir(Pfad & "*.zip")
    Do While datei <> ""
       Shell "7z x -y """ & Pfad & datei & """ -o""" & ZielOrdner & """"
       datei = Dir()
    Loop

Tipps für Profis

  • Verwende Error Handling: Implementiere Fehlerbehandlung in deinem VBA-Code, um Probleme besser zu identifizieren.

  • Automatisiere den Prozess: Du kannst VBA so schreiben, dass es automatisch alle Zip-Dateien in einem Ordner entpackt, indem du eine Schleife verwendest.

  • Teste die Kommandos: Führe die Shell-Kommandos zuerst in der Eingabeaufforderung aus, um sicherzustellen, dass sie korrekt sind.


FAQ: Häufige Fragen

1. Wie kann ich 7zip in VBA verwenden?
Du kannst 7zip in VBA verwenden, indem du die Shell-Funktion benutzt, um die 7z.exe mit den entsprechenden Parametern aufzurufen.

2. Was mache ich, wenn 7zip nicht installiert ist?
Stelle sicher, dass 7zip auf deinem System installiert ist und der Pfad zur 7z.exe in den Umgebungsvariablen enthalten ist.

3. Kann ich auch andere Dateiformate entpacken?
Ja, 7zip unterstützt viele Dateiformate, einschließlich .zip, .rar und .7z. Du kannst die entsprechenden Befehle in deinem VBA-Skript anpassen.

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