I am looking for some help on a code to attach my signature in an email. I had found a code online to attach a selection of cells that can change every time to the body of an email and I asked here a similar question:
I had also tried adding a portion to the code to attach my outlook signature. Mind you I'm not really sure what I'm doing when it comes to VBA so I'm not sure where to put things. Here is the code and below it what I am still looking to do:
It is mostly working, except when the email composes, it does not put our company logo in the signature. it looks like this instead:
*Can the code I have provided somehow be altered to include the image in the signature? I had thought this code would do exactly that based on the pathway provided towards the top of the code to my outlook signature but it does everything but the image.
*In addition, the portion of the code:
How can I make it so that "Updated attendance through" & CDate( -1 ) would be font Callibri size 11 in the email body? Is this doable for both or can it only be done for "Updated attendance through" portion?
Alter existing VBA code for font and font size
Hello, I found a code that will allow me to export a selection that I highlight in excel to the body of an email. It works great but I was wondering how I might have outlook keep the font consistent. In the excel file, the font is Calibri size 11 so that's what I'd also like the rest of the...
www.excelforum.com
I had also tried adding a portion to the code to attach my outlook signature. Mind you I'm not really sure what I'm doing when it comes to VBA so I'm not sure where to put things. Here is the code and below it what I am still looking to do:
VBA Code:
Sub Email_Range_Outlook()
Dim rng As Range
Dim Outlook As Object
Dim OutlookMail As Object
Dim S As String
S = Environ("appdata") & "\Microsoft\Signatures\"
If Dir(S, vbDirectory) <> vbNullString Then S = S & Dir$(S & "*.htm") Else S = ""
S = CreateObject("Scripting.FileSystemObject").GetFile(S).OpenAsTextStream(1, -2).ReadAll
Set rng = Nothing
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "Not a range or protected sheet" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set Outlook = CreateObject("Outlook.Application")
Set OutlookMail = Outlook.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = ""
.BCC = ""
.Subject = "Outstanding Absentee Notifications"
.HTMLBody = "Updated attendance through " & CDate(Date - 1) & RangetoHTML(rng) & S
.Display 'or use .Send
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutlookMail = Nothing
Set Outlook = Nothing
End Sub
Function RangetoHTML(rng As Range)
Dim obj As Object
Dim txtstr As Object
Dim File As String
Dim WB As Workbook
File = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
rng.Copy
Set WB = Workbooks.Add(1)
With WB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
With WB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=File, _
Sheet:=WB.Sheets(1).Name, _
Source:=WB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Set obj = CreateObject("Scripting.FileSystemObject")
Set txtstr = obj.GetFile(File).OpenAsTextStream(1, -2)
RangetoHTML = txtstr.ReadAll
txtstr.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
WB.Close savechanges:=False
Kill File
Set txtstr = Nothing
Set obj = Nothing
Set WB = Nothing
End Function
It is mostly working, except when the email composes, it does not put our company logo in the signature. it looks like this instead:
*Can the code I have provided somehow be altered to include the image in the signature? I had thought this code would do exactly that based on the pathway provided towards the top of the code to my outlook signature but it does everything but the image.
*In addition, the portion of the code:
VBA Code:
.HTMLBody = "Updated attendance through " & CDate(Date - 1) & RangetoHTML(rng) & S