Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1088to1092
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

eingebettetes Zip per VBA entpacken

eingebettetes Zip per VBA entpacken
Dirk
Hallo Forum,
ich habe mal wieder ein Problem, bei dem ich nicht weiterkomme und benoetige Eure hilfe:
Ich habe eine Zip-Date in einer Tabelle eingebettet und moechte dieses per Macro in ein Verzeichnis entpacken (c:\temp\Container).
Wie kann ich Excel dazu bewegen, dieses fuer mich zu tun?
Danke im voraus!
Dirk aus Dubai

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: eingebettetes Zip per VBA entpacken
13.07.2009 12:07:42
Bernd
Hallo Dirk,
vielleicht hilft das weiter:
Variable definieren:
Const myZip As String = "C:\Programme\WinZip\winzip32.exe"
'Parameter -e steht für extrahieren -s soweit ich weiß fürs Kennwort
'Zip_pfaddatei und ziel_pfaddatei sind Variable mit Pfadangabe z.B. "c:\temp\container\test.xls"
strCommandLine = myZip & " -e -s" & KWort & " " & zip_pfaddatei & " " & Ziel_PfadDatei
'Hier wird das Entzippen gestartet
Shell strCommandLine, vbHide
Gruß
Bernd G.
AW: eingebettetes Zip per VBA entpacken
13.07.2009 12:52:07
Dirk
Hallo Bernd,
danke fuer die schnelle Antwort. Das mit der Winzip Kommandozeile hatte ich schon, was ich aber brauche ist folgendes:
Wie komme ich an die Daten im eingebetteten Zip file heran um diese an Winzip zu uebergeben? Bei Doppelklick auf das eingebettete Object zeigt Winzip den Inhalt, aber wenn ich mit .Verb Verb:=shell ... arbeite wird winzip leer geoeffnet.
@ Forum: Vieleicht weiss ja jemand, wie die Daten aus dem Objekt abgefragt werden koennen?
Danke fuer Eure Hilfe.
Gruss
Dirk aus Dubai
Anzeige
AW: eingebettetes Zip per VBA entpacken
13.07.2009 13:33:05
Luschi
Hallo Dirk,
für WinZip habe ich keine Lösung, aber 7Zip bietet die Möglicherkeit, das zip-Archiv auszulesen: _

'mit 7Zip Inhalt von *.zip-Dateien auslesen
Option Explicit
Sub dateien_im_archiv_auflisten()
Dim objShell As Object, fso As Object, objExec As Object
Dim str7z As String, strName As String, msg As String
Dim strArchiv, strOut, i As Integer, k As Long
Set objShell = CreateObject("WScript.Shell")
'Pfad zum 7zip anpassen
str7z = "C:\PROGRA~1\PACKPR~1\7-Zip\7z.exe"
strArchiv = Application.GetOpenFilename("RAR-Archive, *.rar,ZIP-Archive,*.zip")
If strArchiv  False Then
Cells(1, 1) = "Datei"
Cells(1, 2) = "Archiv"
k = ActiveSheet.UsedRange.Rows.Count
Set fso = CreateObject("Scripting.FileSystemObject")
Set objExec = objShell.Exec(str7z & " l " & fso.GetFile(strArchiv).ShortPath)
strOut = Split(objExec.StdOut.ReadAll, vbCrLf)
For i = LBound(strOut) To UBound(strOut)
If Left(strOut(i), 5) = "-----" Then
i = i + 1
Do
strName = strOut(i)
strName = Mid(strOut(i), InStrRev(strOut(i), "   "))
strName = LTrim(strName)
strName = Mid(strName, InStr(strName, " "))
strName = LTrim(strName)
k = k + 1
Cells(k, 1) = strName
Cells(k, 2) = strArchiv
i = i + 1
Loop Until Left(strOut(i), 5) = "-----"
Exit For
End If
Next
End If
End Sub 
Gruß von Luschi
aus klein-Paris
Anzeige
AW: eingebettetes Zip per VBA entpacken
13.07.2009 14:18:12
Dirk
Hallo Luschi,
danke fuer Deine Antwort. Wenn ich mir den Code von Dir ansehe (ohne ausprobieren) sehe ich nur das dort archiv-Dateien verarbeitet werden, und die gefundenen Dateinamen und Archivnamen in ein Excel Blatt eingetragen werden.
Ich brauche aber eine Methode um den Inhalt einer in Excel eingebetteten Zip-Datei in ein Verzeichnis zu entpacken.
Manuell ginge das ueber den Object Packager, ich moechte das aber automatisieren.
Hat jemand noch eine andere Idee?
Danke und Gruss
Dirk aus Dubai
AW: eingebettetes Zip per VBA entpacken
13.07.2009 17:01:59
Luschi
Hallo Dirk,
im Gegensatz zu WinZip ist es mit 7Zip möglich, ein Array zu erstellen, in der alle in der Zip-Datei einhaltenen Dateien als Dateiname stehen (ShortPath)
Set objExec = objShell.Exec(str7z & " l " & fso.GetFile(strArchiv).ShortPath)
strOut = Split(objExec.StdOut.ReadAll, vbCrLf)
Komme leider heute nicht mehr dazu, aber morgen schicke ich Dir ein Beispiel dazu.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: eingebettetes Zip per VBA entpacken
14.07.2009 07:07:53
Dirk
Hallo Luschi,
das habe ich schon verstanden. Der Punkt ist: Die Zip Datei ist noch nicht auf der Festplatte, sondern immernoch im Tabellenblatt eingebettet. Solange ich da nicht 'rankomme kann ich auch nichts entpacken.
Ich suche eine Moeglichkeit die eingebettete Zip-Datei aus dem Tabellenblatt per VBA auf die Festplatte zu entpacken.
Gruss
Dirk aus Dubai

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige