Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi hope someone can help me out
The code below will ZIP the active workbook and send the zip file via email 1. I need to insert addition files into the ZIP archive before it hits the 2. I need Outlook to setup the email but NOT send the file (ie I'd like to manually press send...) Any ideas much appeciated Sub ActiveWorkbook_Zip_Mail() 'This sub will send a newly created workbook (copy of the Activeworkbook). 'It zip and save the workbook before mailing it with a date/time stamp. 'After the zip file is sent the zip file and the workbook will be deleted from your hard disk. Dim PathWinZip As String, FileNameZip As String, FileNameXls As String Dim ShellStr As String, strdate As String Dim Runwzzip As Long Dim OutApp As Outlook.Application Dim OutMail As Outlook.MailItem PathWinZip = "C:\program files\winzip\" 'This will check if this is the path where WinZip is installed. If Dir(PathWinZip & "winzip32.exe") = "" Then MsgBox "Please find your copy of winzip32.exe and try again" Exit Sub End If esaName = ActiveSheet.Range("f6").Value seqNumber = ActiveSheet.Range("b6").Value FileNameZip = "C:\rds\zipped\" & seqNumber & " " & esaName & ".zip " FileNameXls = "C:\rds\zipped\" & seqNumber & " " & esaName & ".xls" ActiveWorkbook.SaveCopyAs FileName:=FileNameXls ShellStr = PathWinZip & "Winzip32 -min -a " _ & " " & Chr(34) & FileNameZip & Chr(34) _ & " " & Chr(34) & FileNameXls & Chr(34) Runwzzip = Shell(ShellStr, vbHide) nSubject = ActiveSheet.Range("b6").Value Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(olMailItem) With OutMail .To = "Email here" .CC = "" .BCC = "" .Subject = nSubject .Body = " " .Attachments.Add FileNameZip .Send End With Set OutMail = Nothing Set OutApp = Nothing Kill FileNameXls End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Steve,
1.You could try iterating through a collection of files passing the same Shell command, this will add each to the archive. Something like: Using FSO.Getfolder, you can collect all of the fso.files and add them into your collection. So if all of the workbooks are in the same folder, you can just iterate through the folder contents to get each of the files. 2. To have your created email displayed instead of sent, you just use, .display (instead of .send) in you olMessage code. This will then show the email before you send it. Tip: With the error handling for the winzip.exe file, you can use Application.GetOpenFileName, which then you can trap & filter the file that is selected. Although this is passed through excel, you just wouldn't use the Execute Command. I.e. Dim strWinZip as String strWinZip = Application.GetOpenFilename "Application Files (*.exe), *.exe" if strWinZip = False or strWinZip = "" then .......... else 'Use StrWinzip as the location where your file was found. Remember that strWinZip is a String. end if ----- Steve wrote: ----- Hi hope someone can help me out The code below will ZIP the active workbook and send the zip file via email 1. I need to insert addition files into the ZIP archive before it hits the 2. I need Outlook to setup the email but NOT send the file (ie I'd like to manually press send...) Any ideas much appeciated Sub ActiveWorkbook_Zip_Mail() 'This sub will send a newly created workbook (copy of the Activeworkbook). 'It zip and save the workbook before mailing it with a date/time stamp. 'After the zip file is sent the zip file and the workbook will be deleted from your hard disk. Dim PathWinZip As String, FileNameZip As String, FileNameXls As String Dim ShellStr As String, strdate As String Dim Runwzzip As Long Dim OutApp As Outlook.Application Dim OutMail As Outlook.MailItem PathWinZip = "C:\program files\winzip\" 'This will check if this is the path where WinZip is installed. If Dir(PathWinZip & "winzip32.exe") = "" Then MsgBox "Please find your copy of winzip32.exe and try again" Exit Sub End If esaName = ActiveSheet.Range("f6").Value seqNumber = ActiveSheet.Range("b6").Value FileNameZip = "C:\rds\zipped\" & seqNumber & " " & esaName & ".zip " FileNameXls = "C:\rds\zipped\" & seqNumber & " " & esaName & ".xls" ActiveWorkbook.SaveCopyAs FileName:=FileNameXls ShellStr = PathWinZip & "Winzip32 -min -a " _ & " " & Chr(34) & FileNameZip & Chr(34) _ & " " & Chr(34) & FileNameXls & Chr(34) Runwzzip = Shell(ShellStr, vbHide) nSubject = ActiveSheet.Range("b6").Value Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(olMailItem) With OutMail .To = "Email here" .CC = "" .BCC = "" .Subject = nSubject .Body = " " .Attachments.Add FileNameZip .Send End With Set OutMail = Nothing Set OutApp = Nothing Kill FileNameXls End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Navigating to Excel files over network slow, but not Word files | Excel Discussion (Misc queries) | |||
How can I batch convert 97-2003 .xls files to 2007 .xlsx files | Excel Discussion (Misc queries) | |||
How to change default Open/Files of Type to "Microsoft Excel Files | Excel Discussion (Misc queries) | |||
converter tool to convert XL 2007 files to XL 2003 files | Excel Discussion (Misc queries) | |||
Drive Erased, got Files back but only excel files scrambled, help. | Excel Discussion (Misc queries) |