Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1808to1812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige