- Katılım
- 1 Kasım 2016
- Mesajlar
- 11
- Excel Vers. ve Dili
- 2020
- Altın Üyelik Bitiş Tarihi
- 20-01-2022
Merhaba Ustalar;
Aşağıdaki kodlar ile makro ile otomatik rapor atıyorum. Makro kodları sayesinde mail eklerini ve resimlerini otomatik kopyalıyor.
Ancak aşağıdaki resimde görüldüğü gibi resimler X olarak cıkıyor html bölümüne ekleyemediği için EK' olarak ekliyor.
Outlook365 geçtikten sonra böyle oldu ilgili sorun office2013'da yok ancak şirket exchange tabanlı mail desteklediği için 2016 üstü şart 2016'yıda denedim sorun düzelmedi unilever uzantısı hariç diğer kuruluş dışı attığım tüm kişilere mail böyle gitmektedir. Makro kodlarını güncelleyerek çözüm üretebilirmiyiz acaba
Teşekkürler.
Aşağıdaki kodlar ile makro ile otomatik rapor atıyorum. Makro kodları sayesinde mail eklerini ve resimlerini otomatik kopyalıyor.
Ancak aşağıdaki resimde görüldüğü gibi resimler X olarak cıkıyor html bölümüne ekleyemediği için EK' olarak ekliyor.
Outlook365 geçtikten sonra böyle oldu ilgili sorun office2013'da yok ancak şirket exchange tabanlı mail desteklediği için 2016 üstü şart 2016'yıda denedim sorun düzelmedi unilever uzantısı hariç diğer kuruluş dışı attığım tüm kişilere mail böyle gitmektedir. Makro kodlarını güncelleyerek çözüm üretebilirmiyiz acaba
Teşekkürler.
Kod:
Sub Mail_Selection_Range_Outlook_Body(mailTo As String, fPath As String, rng As Range, rng2 As Range, rng3 As Range, rng4 As Range, rng5 As Range, reportName As String)
Dim OutApp As Object
Dim OutMail As Object
If rng Is Nothing And rng2 Is Nothing And rng3 Is Nothing And rng4 Is Nothing And rng5 Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected. " & _
vbNewLine & "Please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Dim imagePath As String
Dim imagePath2 As String
Dim imagePath3 As String
Dim imagePath4 As String
Dim imagePath5 As String
imagePath2 = ActiveWorkbook.Path & "\özet2.jpg"
imagePath = ActiveWorkbook.Path & "\özet1.jpg"
imagePath3 = ActiveWorkbook.Path & "\özet3.jpg"
imagePath4 = ActiveWorkbook.Path & "\özet4.jpg"
imagePath5 = ActiveWorkbook.Path & "\özet5.jpg"
With OutMail
.To = mailTo
.cc = ""
.BCC = ""
.sentonbehalfofname = "alg.eryaman-ankara@unilever.com"
.Subject = reportName
.Attachments.Add (fPath)
.Attachments.Add (imagePath)
.Attachments.Add (imagePath2)
.Attachments.Add (imagePath3)
.Attachments.Add (imagePath4)
.Attachments.Add (imagePath5)
.htmlbody = RangetoHTML(rng, rng2, rng3, rng4, rng5) & "<br><br><br>""<b>ÖZET</b><br />" & "<img src='" & "özet1.jpg" & "'>" & "<br><br><br>""<b>ÖZET2</b><br />" & "<img src='" & "özet2.jpg" & "'>" & "<br><br><br>""<b>ÖZET3</b><br />" & "<img src='" & "özet3.jpg" & "'>" & "<br><br><br>""<b>ÖZET4</b><br />" & "<img src='" & "özet4.jpg" & "'>" & "<br><br><br>""<b>ÖZET5</b><br />" & "<img src='" & "özet5.jpg" & "'>"
.send
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Function RangetoHTML(rng As Range, rng2 As Range, rng3 As Range, rng4 As Range, rng5 As Range)
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.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 TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
TempWB.Close savechanges:=False
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function