Sub
CommandButton2_Click()
Dim
c
As
Range, strDat
As
String
, strZip
As
Variant
, strQuelle
As
Variant
Dim
strListe
As
String
, FF
As
Integer
, sh, strMsg
As
String
Range(
"A101:A107"
).
Select
Selection.Copy
Range(
"A110"
).
Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=
False
, Transpose:=
False
Application.CutCopyMode =
False
ActiveWindow.SmallScroll Down:=-84
Set
sh = CreateObject(
"WScript.Shell"
)
strQuelle = Application.ActiveWorkbook.Path & "\Bedingungen SVFP 2017\"
Const
str7Zip
As
String
=
""
"C:\Users\Marco\Desktop\Rahmenvertrag Tool\7ZipPortable\App\7Zip\7z.exe"
""
Const
strParam
As
String
=
" -r -mx=5 -mmt=on"
strZip = Application.GetSaveAsFilename(ThisWorkbook.Path &
"\Bedingungen Zip Test\" & Range("
D4
") & "
_
" & Format(Now, "
yyyymmdd_hh-mm
") & "
Bedingungen SVFP.zip
", "
*.zip,*.zip")
If
strZip =
False
Then
Exit
Sub
strZip = Chr(34) & strZip & Chr(34)
strListe = Mid(strZip, 2, InStrRev(strZip,
"\") - 1) & Format(Now, "
yyyy-mm-dd_hh-mm-ss")
FF = FreeFile()
Open strListe
For
Output
As
#FF
For
Each
c
In
Selection
strDat = strQuelle & c.Value
If
Dir(strDat, vbDirectory) <>
""
Then
Print #FF, strDat
Else
strMsg = strMsg & vbLf & strDat
End
If
Next
Close #FF
sh.Run str7Zip &
" a -tzip "
& strZip &
" @"
& Chr(34) & strListe & Chr(34) & strParam, ,
True
Set
sh =
Nothing
Kill strListe
If
Len(strMsg) > 0
Then
MsgBox
"Es konnten folgende Dateien nicht gefunden werden:"
& vbLf & strMsg
End
If
End
Sub