Ron..
the Wait solution...Counting!
I also noted that the NameSpace method
fails if you pass it a string variable....
Sub Zip_All_Files_in_Folder()
Dim sDefPath$, sDate$
Dim vZipPath, vFldPath 'MUST be Variants!
Dim lFldCount&
Dim oApp As Object
Dim oZip As Object
Dim oFld As Object
vFldPath = "e:\testje\" '<< Change
sDefPath = Application.DefaultFilePath
sDefPath = "e:\"
If Right(sDefPath, 1) < "\" Then
sDefPath = sDefPath & "\"
End If
sDate = Format(Now, " dd-mmm-yy h-mm-ss")
vZipPath = sDefPath & "MyFilesZip " & sDate & ".zip"
'Create empty Zip File
Call NewZip(vZipPath)
Set oApp = CreateObject("Shell.Application")
Set oFld = oApp.Namespace(vFldPath)
Set oZip = oApp.Namespace(vZipPath)
'Get the count of files to be compressed
lFldCount = oFld.Items.Count
'Copy the files to the compressed folder
oZip.CopyHere oFld.Items
'Keep script waiting until Compressing is done
Do Until oZip.Items.Count = lFldCount
Application.Wait (Now + TimeValue("0:00:01"))
Loop
MsgBox "You find the zipfile he" & vbLf & vZipPath
Set oFld = Nothing
Set oZip = Nothing
Set oApp = Nothing
End Sub
--
--
keepITcool
|
www.XLsupport.com | keepITcool chello nl | amsterdam
Ron de Bruin wrote :
Hi keepITcool
You code example is working Ok and is shorter and simpler .
BTW : do you have better idea about the wait code on my site
http://www.rondebruin.nl/windowsxpzip.htm#Wait
I test a few other things but this is the only thing that is working
for me (also with big Excel files 5-10 mb)