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 been really trying to get this sorted myself and I can get it to work with one exception. I can't get the sheet to lock with a password. It locks, but if I try to unlock it again, it does so without prompting me to enter a password.
Essentially I am wanting to unprotect two sheets, unlock the cells that were previously locked (so users couldn't enter data in them when the sheet is protected), then reapply the same password to protect the sheet, but now they will be able to enter data in the unlocked range of cells).
The second macro is to reverse the changes made in the first and 're-lock' the unlocked cells) (and again apply the same password to the sheet).
I need VBA code to automatically send an email notification when data is added to worksheet. I am not very familiar with writing code and have been using other code from other posts. Ideally I would like it to send an email notification with the added information attached, in this case it would be Row # and Columns A thru O.
I have an email vba code set up in my workbook that emails the worksheet in an attachment to someone. However, I keep getting an error code saying permission denied when the code tries to finish. It highlights the "Kill Tempfile" field...which in my mind is saying permission denied because I have the worksheet password protected. I kind of want to keep it that way, so is there a way I can enter a line of code in my current script to unprotect what is being emailed in the beginning of the code so that the tempfile created when it is being emailed can be deleted?
Here is my current PHP Private Sub CommandButton1_Click()If Len(Range("H59")) = 0 Or Len(Range("H61")) = 0 Then MsgBox "Please enter customer/employee submitting request and click SUBMIT again." Exit SubElse' Enter the rest of your code hereActiveSheet.PageSetup.BlackAndWhite = TrueApplication.Dialogs(xlDialogPrint).ShowSet appWrd = CreateObject("Word.Application")Set docOpen = appWrd.Documents.Open("F:groupsdeptservCDTISA.doc")docOpen.PrintOutdocOpen.CloseappWrd.QuitDim FileExtStr As String Dim FileFormatNum As Long Dim Sourcewb As Workbook Dim Destwb As Workbook Dim TempFilePath As String
I have a file that needs to be locked down so that the end user does not have the ability to enter data where they shouldn't. The end users are very Excel illiterate, and have proven that I need to have high security in place. Here is my current VBA code - the purpose of which is to hide/unhide rows depending on data entries. (Disclaimer: this code may not be pretty as I am a VBA rookie, and I've begged borrowed and stolen from about 10 other threads on this board to get where I am, and yes it works).
Code:
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(False, False) = "C7" Then Call Changeto1 If Not Intersect(Range("c9"), Target) Is Nothing Then Rows("15:44").EntireRow.Hidden = True Rows("15:" & Range("c9").Value + 14).EntireRow.Hidden = False End If
[Code]...
The question is now....how can I unprotect the sheet so that this code works without allowing them to enter data where they shouldn't. I've been at this for days already.
Is there an easy way (using a macro) to unprotect and protect sheets?
Most sheets in a certain workbook are protected except a few cells that are open for manual entry. Because I have links to other cells in other workbooks, I must unprotect those sheets/fields before I can edit the links. And I MUST ensure all sheets are protected again when I'm done with my work.
Also, is it possible to password-protect that specific macro so I'm the only one who can run it to unprotect and protect?
I would like to search an outlook folder for a variable in the subject line and return the date when that email was received. Here is the code i have so far...
Code: Sub Get_pos()
Set olApp = CreateObject("Outlook.Application")
Dim olNs As Outlook.Namespace Dim Fldr As Outlook.MAPIFolder Dim olMail As Variant
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 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
[code].....
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.
Stumbling over syntax on what should be easy. I want to password protect the active sheet using plain vanilla user input box; and then unprotect ALSO via an input box. Doesn't matter about masking the input with **** or whatever. Based on responses below, here is macro code I used:
To protect the sheet:
Sub ProtectSecurity() Dim pword As String pword = InputBox("Enter Password", "Password") ActiveSheet.Protect pword End Sub --------------------------------- To Unprotect the sheet:
Sub UnprotectSecurity() Dim pword As String pword = InputBox("Enter Password", "Password") ActiveSheet.Unprotect pword End Sub
Okay, I have this code and it works very well - but it only works if my WORKBOOK is unprotected. I know how to Unprotect then Protect an ActiveSheet, but I can't figure out how to Unprotect then Protect my workbook when the macro runs..
Sub BLM_RENAME_SHEET() Dim WS As Worksheet Application.ScreenUpdating = False For Each WS In ActiveWindow.SelectedSheets
I need a macro that I can have in any workbook enabling me to protect / unprotect the workbook that I have currently opened with a set password (let say "Password")
I would link this macro to a button in excel 2002. I have try the following but it doesnt work
Would it be possible that the button (first) works (second) understand whether or not protect / unprotected and do the opposite?
Sub Protect Activeworkbook.protect password:="password", structure:=FALSE, Windows:=false End Sub
I have the below code to email a specific sheet to an email address, however the email stays in the outbox and isn't sent. Is there something missing from the code or is it a setting issue with my email? I'm using Outlook 2010.
When I test the email link on my computer, the 'Outlook Express setup' wizard initiates. However, I don't use Outlook Express (Yahoo and Zimbra). I am wondering of it is possible to automatically ensure that in cases where a user doesn't use Outlook Express by default that Excel will open the users default email client- which could be a web browser or another application? Is this something determined by each users (Control Panel?Registry?) settings for handling email hyperlinks? Is there a piece of VBA code I could include in the workbook which identifies the relevant email client to open?
I know I can simply provide my email address on the workbook and allow a user to copy/paste it into their email application but I feel that by minimising the amount of effort required by a user to provide a rating that I'll be more likely to receive user rating feedback.
I have a spreadsheet which contains 30,000 lines Column A contains an email address. This spreadsheet was merged from several and so I know that there are duplicates in it.
How can I look up column A and if an identical value (email address) is found further down the sheet on another row. Delete that duplicate row?
I'm not concerned that the data may not be identical in other columns. If the email is a duplicate delete the next and all other rows that contain that email address.
I am trying to send an automated email by use of a "email" button. What I want it to do is to pop up a input box that will ask me who I want to send the email to, and once I hit ok it will send open up outlook and send the email. I have the code to work if I want it to be sent to a specific email address, but I can't seem to get the email address entry part to work. I will attach my code as it lays right now.
Private Sub CommandButton2_Click()'Need to reference: Microsoft Forms 2.0 Object LibrarySet OutApp = CreateObject("Outlook.Application")OutApp.Session.LogonSet OutMail = OutApp.CreateItem(0)strbody = "This is the most up to date copy of EAS Tracking 2.0 as well as the Resource Planning Sheet."attachmnt2 = "C:My DocumentsResource Planning Sheet_External.xls"On Error Resume Next'?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|?|? BELOW IS WHERE I CAN'T GET TO WORK!!!With OutMailDim range As Longrange = Application.InputBox("How many copies do you want?", "Number of Copies").To = range.Subject = "This Weeks Reports".Body = strbody.Attachments.Add (attachmnt2).Display.SaveEnd With'__________________________________________________attachmnt3 = "C:My DocumentsReport DataWork Request Tracking Data FolderEAS Request 2.0.xls"On Error Resume NextWith OutMail.Subject = "This Weeks Reports".Body = strbody.Attachments.Add (attachmnt3).Display.SaveEnd .........
I used Scheduled Task to set up my spreadsheet to open daily. I have the code with assistance to pull out the due date items and place them into an email.
I have come across XLSTART/AUTOEXEC/ACTIVATE...ETC... But cannot figure out the code that will automatically "enabling macro" once Scheduled Task opens the spreadsheet?
Then once the macro runs, the email with the due dates, how can this auto send without user interaction? (currently I would have to hit send)
I am trying to make the process totally automated to open the spreadsheet at a certain time, send the email with due dates and close the spreadsheet.
Following code in ThisWorkbook--
Private Sub Workbook_Open() Check_Date_Send_Mail End Sub Code in Module1--
Option Explicit Sub Check_Date_Send_Mail() Dim wbBook As Workbook Dim wsSheet As Worksheet Dim rnDate As Range, rnValue As Range Dim stAddress As String, stMsg As String Dim stRecipient As String, stSubject As String Dim stPost As String Set wbBook = ThisWorkbook Set wsSheet = wbBook.Worksheets("Sheet1") With wsSheet Set rnDate = .Range("d2:t23") End With
I'm creating an excel file that can email itself inside the body of a HTML in Outlook. I have found some code from the web and have re-fitted it so that I may use it for my purpose. My main issue is this: I cannot keep my default Outlook signature on the email when it gets sent.
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 created a user Form where a user can enter all the details like (First name, last name, Email ID etc...). the entered data is submitted on Sheet1 and it is working for me.
Now which I want is the is it possible to pick up the last email id (Column D) and send an automatic email where email will be sent the last recipient?
Actually I want is that when a user will fill up the form I want to send him/her an email.
We know that professional emails have a fixed format. I have a list of people with their names and emails and there are some people for which emails are missing. I am pasting my sample data below. But first let me explain the meaning of columns.
Column A: Means full name of the person for which we have email id Column B & C: just split of Available full name into first name and last name Column D: Email id of the person with full name in column A Column E: For the names in this column, we need to get email ids Column H: Sample result
Now basis on the Full Name(Column A) and Email Id(Column D) can we get the email id for person in Column E.
Sheet4 A B C D E F G H
1 Available Full Name Available FirstName Available LastName Email for available full name Actual Full name Actual firstname Actual lastname Sample result
I need to email a page from a worksheet to a series of people and am currently using the following
Worksheets("Report").Activate ActiveWorkbook.Save
Dim wb As Workbook Dim strdate As String strdate = Format(Now, "dd-mm-yy h-mm-ss") Application. ScreenUpdating = False ActiveSheet.Copy Set wb = ActiveWorkbook With wb
however, I also need the worksheet to be email to the person currently running the macro (i.e. when they email it to the others, a copy is sent to thier own inbox too), is there any way in which this can be done?
The user's email address could be formed from data in the spreadsheet, if there is an easier way to do this (i.e. email address is based on a cell in the spreadsheet).
I have an annual leave (vacation) work book with a summary page work sheet and separate work sheets for each month i.e. Jan, Feb, Mar.....to......Dec. In order to protect the formulas I have protected them by allowing only access to the input cells on each work sheet and the protect each work sheet.
When someone either joins or leaves the team I have to manually unprotect each sheet and protect again when I have completed the amendments to each of the 13 tabs.
macro code I would need to unprotect all the works sheets in one go (as I use the same password for all the sheets) and reset the passwords (protect) the sheets with more macro code.
I will be running the two macros from my own personal.xls file and ideally they would be fully automatic i.e. I would not need to input the passwords in to unlock or lock the work sheets as the password would be written in the code already
I have a protected worksheet containing an SQL query. I have two cells on the worksheet unlocked so that users can enter fresh parameters to feed the query. Because I have to use MS Query to interrogate our SQL server (current IT decree), the query won't support parameters directly when the query cannot be represented graphically - so I have to manually edit the sql command text and then refresh the query - or at least that was why I wrote the code below
The problem: My macro won't unprotect the sheet before it calls the SQL.it therefore won't update the sheet to detail the DSN, command text and number of parameters (latter should be 0) - info just used to verify queryit won't run the query / return the data as the sheet is still protected Comment: I have had to remove sheet protection in order to allow the sql to execute and return data. If protection is removed, the query does execute and return data ( changes in the "parameter" cell contents do cause the query to be correctly modified) I could comment out the debug info but the query still doesn't return data if the sheet is protected.
Activesheet And worksheets(ndx) where ndx has been defined As ActiveSheet.Name I apologise If my post Is difficult To follow - especially the code.
Currently, I have a report that's emailed to me once a day, from which I copy and paste data into my spreadsheet, then send out a once a day report. I would like to have that report updated 10 or 12 times a day, but that would start to eat up a LOT of my time. The email is always in the same format, and I'm wondering if there is a way to use something like a web query to automatically pull that data and update the sheet?