- 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 ve EK'e ekliyor. Ancak mail uzantım aynı olan örnek excel@excelweb.com dan
test@excelweb.com'a attığımda tam olarak o resimler cıkıyor ancak farklı domainlere attığımda çıkmıyor Kırmızı X olarak geliyor.
O kişinin mail outlooklarını internette bulduğum tüm çözümleri denedim hiç birisi olmadı acaba sorun kodlardamı daha önce böyle birşey mevcut değildi
yardımcı olurmusunuz teşekkürler. Kodlar aşağıdadır.
KODLAR
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 ve EK'e ekliyor. Ancak mail uzantım aynı olan örnek excel@excelweb.com dan
test@excelweb.com'a attığımda tam olarak o resimler cıkıyor ancak farklı domainlere attığımda çıkmıyor Kırmızı X olarak geliyor.
O kişinin mail outlooklarını internette bulduğum tüm çözümleri denedim hiç birisi olmadı acaba sorun kodlardamı daha önce böyle birşey mevcut değildi
yardımcı olurmusunuz teşekkürler. Kodlar aşağıdadır.
KODLAR
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