Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

*.xls per VBA zippen

*.xls per VBA zippen
23.06.2006 08:48:34
Manfred
Hallo,
bei meinem Versuch eine *.xls Datei zu Zippen, komme ich nicht weiter. Kann mir dabei bitte jemand behilflich sein.
Ich habe diesen VBA-Code hier gefunden, er ist aber bei mir nicht lauffähig.

Sub MappeSchliessen()
Dim xlsName$, zipName$, Zip$
ActiveWorkbook.Save
xlsName = ActiveWorkbook.FullName
ActiveWorkbook.Close
zipName = Left(xlsName, Len(xlsName) - 4) & xlsName.Zip
Zip = c:\programme\winzip\winzip32.exe -a
Shell Zip & zipName & xlsName
End Sub

Ich möchte die Datei namens:
C:\Programme\Gemeinsame Dateien\Urlaub.xls in
C:\Programme\Gemeinsame Dateien\Urlaub.zip speichern und mir würde der VBA-Code reichen ohne das die einzelnen Dateien geöffnet werden.
Gruss Manfred

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: *.xls per VBA zippen
23.06.2006 08:50:04
Dr.
Hi,
"nicht lauffähig" ist für eine Analyse ein bißchen wenig...
AW: *.xls per VBA zippen
23.06.2006 08:54:19
Manfred
Hallo Dr.,
was soll ich mehr sagen. Versuche mal das VBA ins Modul zu bringen, da geht es doch schon mit den Fehlermeldungen los.
Gruss Manfred
AW: *.xls per VBA zippen
23.06.2006 09:38:18
Manfred
Nochmals Hallo,
die Richtung scheint schon mal sehr gut zu sein, nur habe und kann auch keine andere Version von Zip nutzen, da ich keine anderen Softwaren auf den Rechner bringen darf und mit C:\Programme\WinZip\WINZIP32.EXE scheint es nicht automatisch zu laufen. Hast du da eine Idee? Einfach nur die Zeile für WinZip auswechseln bringt mir nicht den Erfolg.
Gruss Manfred
Anzeige
AW: *.xls per VBA zippen
23.06.2006 09:41:42
Dr.
Kann es sein, dass Du den Level etwas verpasst hast? Der Code aus dem Thread tuts einwandfrei. Dateiname der .exe und Pfad anpassen und fertig.
AW: *.xls per VBA zippen
23.06.2006 09:54:09
Manfred
Hallo Dr.,
ich finde es sehr schade, das wir uns nun hier auch über das von mir eingegeben Level unterhalten müßen, statt über das eingentliche Problem zu reden. Ich finde eigentlich, das ich bereits gut mit VBA umgehen kann und außerdem gibt es leider nicht die Möglichkeit das Level mit VBA "ja" einzugeben, denn ich arbeite schließlich nicht nur mit dem MakroRekorder.
Aber damit ist mein Problem leider immer noch nicht gelöst.
Gruss Manfred
Anzeige
Nachtrag zu: *.xls per VBA zippen
23.06.2006 09:42:45
Manfred

Sub Zippen2()
Dim sDatei As String
Dim sPfad As String
sPfad = "D:\Userform\"
ChDrive sPfad
ChDir sPfad
sDatei = Dir("*.xls")
Do While sDatei <> ""
Shell "c:\programme\winzip\winzip32.exe gepackt\" & Left(sDatei, Len(sDatei) - 4) & " " & sDatei
sDatei = Dir
Loop
End Sub

kann vielleicht ein anderer weiterhelfen?
23.06.2006 11:25:35
Manfred
Kann mir bitte jemand sagen, wie diese Zeile dabei richtig heißen muß, damit automatisch das ZipFile erstellt wird?
Shell "c:\programme\winzip\winzip32.exe " & "D:\Userform\" & "DateiName.zip"
Gruss Manfred
---> hier die Lösung
23.06.2006 13:54:17
Manfred
Für alle die es auch benutzen möchten, stelle ich hier die Lösung zur Verfügung

Sub Zippen()
'alle in einem Verzeichnis befindlichen Dateien einzeln Zippen!
Dim sDatei As String
Dim sPfad As String
sPfad = "C:\Test\" 'hier den Pfadnamen eingeben, bzw ändern!
ChDrive sPfad
ChDir sPfad
sDatei = Dir("*.xls")
Do While sDatei <> ""
zipName = Left(sDatei, Len(sDatei) - 4) & ".zip"
Shell "c:\programme\winzip\winzip32.exe -min -a " & sPfad & zipName & " " & sDatei
sDatei = Dir
Loop
End Sub

Freundliche Grüße
Manfred
Anzeige
AW: wie entzippen ??
23.06.2006 14:30:46
HorstH
Hallo Manfred,
zippe und entzippe Dateien. Habe jedoch Probleme mit dem Entzippen. Hast du da Erfolgreiches script? Meins sollte es tun, tut es aber nicht. Vielleicht kannst du den Fehler finden. Die Pfade in ein sheet in die genannten Zellen schreiben oder aber direkten Pfad eintragen in code. Das sheet muss offen sein beim zip-Vorgang. Dateien kann ich zippen, aber entzippen, da hapert es bzw. funktioniert mal gar nicht. Teste mal. Für Rückmeldung wäre ich dankbar. Ab Montag wieder im Büro. Gruß Horst
Zippen Modul 1:
Option Explicit
Public Const PROCESS_QUERY_INFORMATION = &H400
Public Const WAIT_TIMEOUT = &H102&
Declare <pre>
Function OpenProcess Lib "Kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare <pre>
Function WaitForSingleObject Lib "Kernel32" (ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
<pre>
Sub Win32WaitTilFinished(ProgEXE As String)
Dim ProcessID As Long
Dim hProcess As Long
Dim RetVal As Long
ProcessID = Shell(ProgEXE, vbHide)
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessID)
Do
DoEvents
RetVal = WaitForSingleObject(hProcess, 50)
Loop Until RetVal <> WAIT_TIMEOUT
End Sub</pre>
Zippen Modul 2(zum Zippen dann):
<pre>
Sub PackedZip_01()
Dim sZipPath As String, sSourcePath As String, _
sTargetPath As String
sZipPath = Range("B1").Value
sSourcePath = Range("B4").Value
sTargetPath = Range("B5").Value
Call IfDir(sZipPath)
Call IfDir(sSourcePath)
' If Dir(sTargetPath) <> "" Then
' Kill sTargetPath
' End If
On Error GoTo ERRORHANDLER:
Win32WaitTilFinished _
sZipPath & " -a " & _
sTargetPath & " " & _
sSourcePath
MsgBox "Erfolgreich gezippt:" & vbLf & sTargetPath
Exit Sub
ERRORHANDLER:
MsgBox "F E H L E R ! Datei konnte nicht gepackt werden!"
End Sub</pre>
Zippen Modul 3 (zum entzippen):
' F E H L E R Dateien landen immer unter eigene Dateien ? oder funktioniert mal gar nicht ??
<pre>
Sub OpenZip_01()
Dim sZipPath As String, sSourcePath As String, sTargetPath As String
sZipPath = Range("B1").Value
sSourcePath = Range("B9").Value
' sTargetPath = "c:\Programm_QSB0e\"
sTargetPath = Range("B8").Value
Call IfDir(sZipPath)
Call IfDir(sSourcePath)
' If Dir(sTargetPath) <> "" Then
' Kill sTargetPath
' End If
' On Error GoTo ERRORHANDLER:
Call Win32WaitTilFinished(sZipPath & " -e " & sSourcePath)
' Workbooks.Open sTargetPath
Exit Sub
'ERRORHANDLER:
' Msgbox "Datei konnte nicht entpackt werden!"
End Sub</pre>
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige