this macro works perfectly when I only have one attachment per email. I thought this part of the code would solve my problem however it is now not attaching any files where I want more than one attachment.
Dim files As Variant, file As Variant
files = Split(filepath, ",")
For Each file In files
wing in the cells in column B (where I need more than one attachment):
G:DocumentsReportsAJ - 6C091, 6C0922. Feb 6C091 Cost Centre Report.xls,02. Feb 6C092 Cost Centre Report.xls
G:DocumentsReportsAJ - 6C091, 6C0922. Feb 6C091 Cost Centre Report.xls,G:DocumentsReportsAJ - 6C091, 6C0922. Feb 6C092 Cost Centre Report.xls
Full code below....
i = Cells(2, "B").Value
Do ' start[code]...
I have a macro to send emails to a group people that based on various criteria, it will attach a number of files to a recipient's particular email. This is a small portion of the code that does the attachment adding:
Code: If Range("B" & a) = "Y" Then If citChev "" Then .Attachments.Add citChev End If If Range("C" & a) = "Y" Then If citMits "" Then .Attachments.Add citMits End If If Range("D" & a) = "Y" Then If citToyo "" Then .Attachments.Add citToyo End If If Range("E" & a) = "Y" Then
Most people get several of the files attached to their email and all works fine. But, there are certain conditions when all the IF() stmts fail where a recipient will not get any files attached. I do not want to send the email if this is the case, but it currently is sending it.
Is there a way after all the IF() stmts have processed to check to see if this current email has any attachments assigned to it? (IF .Attachments "" Then...) does not work.
Column A has a list of companies, column B-G has email addresses for each company (some companies have just one email, others may have four) Column H has the name of a report I would like to send to each company (It is a different file for each company)
I would like to loop through each row and send one email that includes all the contacts and the attachment.
I manipulated some code that is pretty much what I want it to do, but not quite. The below code looks like it is looking for email adresses (I don't really need that feature) and is sending an email to each address versus each company.
Sub Send_Files() 'Working in 2000-2007 Dim OutApp As Object Dim OutMail As Object Dim sh As Worksheet Dim cell As Range, FileCell As Range, rng As Range
With Application .EnableEvents = False .ScreenUpdating = False End With.........
Everyday a report is emailed to me as an attachment in .pdf and .xlsx format. It is always sent to me from the same address and comes at around the same time every day.
I already have another macro that uses that report to update our records with the new info in the report and then email our records to my boss. I would like to make it easier for other people who also get the report emailed to them to run the macro. To do so I would like to amend the macro I have to check for the email in whoever is running the macro's inbox and download only the .xlsx file and save it to the correct location.
I have tried messing with the restrict method. I want to make this thing fool proof. (Ex. if the email isn't in yet, return a msg box informing as such.)
The code for the macro I already have can be found below. Confidential stuff has been redacted.
Code: Sub PartThree() 'This macro does the following: '1.) runs the MTD.template.xls module 2
Here is my code below for a program that opens a user interface, lists all the names of tabs in the spreadsheet in a list box. By selecting an item (or sheet name) in the list box then clicking "email" a specific area of that selected sheet is sent to an email address located on the sheet.
What I would like to have happen is with the click of a button email each sheet to the specified email address. So if there were 100 sheets rather than clicking on each name then clicking email, have one button to email the each individual sheet to the associated email address. I am guessing something like a "For" loop would be required but am not quite sure how to implement.
Code: Private Sub CommandButton2_Click()
Private Sub ListBox1_Click() 'this will set the label caption depending on which sheet is selected in the list box
I have specified the email addresses in the code to whom the email will be sent when the user presses "Send Email" button but now I want to add all the addresses in the Access table and write down the code that will send an email to those people whose addresses are in the Access table.
I am using Excel 2010. I have been given a task at work that can save my team a lot of time if I can solve the problem. Every month, we have a spreadsheet with about 5000 rows that we have to email. In each row, there is a range that we have to email to a specific email. For example, I would have to copy and paste Range A2-R2 in the body of the email, and then email it to whatever email is in cell S2. I would then continue this for the next 5000 lines, making it a possibility that i will be sending 5000 emails manually.
I have been trying to come up with a solution through VBA that would automatically send these emails. My goal is to automatically send the Range A2-R2 to outlook email, then cell S2 into the "To" email address box, and then automatically send it. So far, i have successfully been able to send one row, but cannot figure out how to loop it for the remainder of the rows.
A couple other key points are that I have column headings as well (Range A1-R1). If possible, I want to be able to include the column headings in the email body as well. Example - first email would be range A1-R2. second email would be range A1-R1 and A3-R3, and so forth. The body of the email would also contain a standard script, such as "Please review the information below."
The goal here is to save everyone from having to send 5000+ manual emails. This would be a big boost for my team.
I have the below VBA code which does not seem to be working. I want to have an email alert as soon as some Excel is saved. THis is the code I am using. Office 2007 is used, I have Enable all macros under trust centre settings.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Dim OutLook As Object Dim OutMail As Object Const SendTo As String = "firstname.lastname@example.org" Set OutLook = CreateObject("Outlook.Application") OutLook.Session.Logon Set OutMail = OutLook.CreateItem(0) With OutMail .To = SendTo .Subject = ThisWorkbook.Name & " is updated" .Body = " Needs your attention!" .Send End With Set OutMail = Nothing Set OutLook = NothingEnd Sub
I am using the following code and it works great the only problem is that when I have more then one email address in the same cell it will not send the email. Even if I seperate it with a semicolon. It work fine if I have just one email address in the email field. How can I get it to send the same info to different email addresses.
I have previously used the following code to successfully pull out IE webpage source code for string manipulation.
Its a crude example to demonstrate the principle:
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public IE As Object Sub Sample() Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True
However when I substitute in a Google websites address into the IE.Navigate command, the code runs to the "Source_Code = IE.document ...." line then flags up a Microsoft Visual Basic error. "Run-time error '438': Object doesn't support this property or method"
The webpage that I am trying to access is a confidential company site, so you won't be able to access it yourself, but starts with [URL] ......
The one thing that I have noticed about this website is the Privacy Report icon in the lower right status window (Picture of an eye with a restricted symbol in front). I don't know whether this is the cause of my problem, or purely an incidental observation.
Is there something peculiar with Google sites that means that the source code cannot be extracted in general, or is this an issue specific to my site ? Does the Privacy Report icon have any relevance, and if so how do I switch that off ?
Is there a way to use the function Sendmail without sending the Workbook, sheets or any attachments at all. I just would like to push a button in my Workbook so that a mail goes to the recipient saying for example: "Check our shared folder.
I am trying write one to search a range of cells and attach all files located in those cells to an email. I can get most of the code to work, but am having difficult getting it to search through specific cells.
I'm trying to email multiple worksheets from a list to multiple recipients in a list, but in one file per person. In a sheet called "Email list", for example, I have a list of 50 worksheet names (e.g. one for each cost centre) in column A (with a heading in cell A1, if that's OK, so the list starts in A2) and in columns B-F up to 5 recipients for each worksheet (e.g. 3 recipients might be 2 supervisors and their manager).
Also, each manager and supervisor might also receive several sheets.
Although columns B-F are presently free-format (they can be anyone's email address, regardless of whether they're a supervisor or manager), it might be easier to split these columns so B,C,D are supervisors emails and E,F are managers, if that makes it any easier creating the collated file of worksheets..?
Unfortunately the recipients might change occasionally so they can not be hard keyed into the macro itself (which would be much easier), but need to be in a table so it's easier for the user to update and maintain - in the past, I've managed to hard key the requirement into a macro which I've maintained (by recording and editing the macro), but I don't know the VB to figure this new request.
Ideally, I am trying to create a macro that can collate the various worksheets each person will receive and send the selected sheets in one file to that recipient, rather than multiple files within one email and/or multiple emails.
it has been designed to send out automated emails using Excel and Lotus Notes, unfortunately the code was give to me to modify and the person who created it didn't comment the code at all so i'm finding it impossible to see what each part is doing: ....
I have a macro that is currently set up to save a draft of my email from Excel. Feedback I've received from my peers is that they would like this macro to Open the drafted email it creates instead of the user having to navigate to the draft folder to open it up.
Is there a part of the code below I can modify so this happens?
//Sub Mail_workbook_Outlook_1() Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0)
VBA COde for adding CC, BCC to email sent from excel. I already have the below code to send email from worksheet, i need to add a copy email.
Private Declare Function ShellExecute Lib "shell32.dll" _ Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long
below is a VB code to email separate sheets based on sheet anme and email address on a sheet called " mail".
Code seems to fail at the last line " Next a" any ideas why this is not working
Sub Mail_sheets() Dim MyArr As Variant Dim last As Long Dim shname As Long Dim a As Integer Dim Arr() As String Dim N As Integer Dim strdate As String For a = 1 To 253 Step 3 If ThisWorkbook.Sheets("mail").Cells(1, a).Value = "" Then Exit Sub