Merhaba arkadaşlar. forumda aradım ancak bu tarz bir konu bulamadım hep bir butona göre mail gönderimi yapabiliyoruz. benim ricam ise,
a3 hücresi dolu ise belirlenen adreslere a3 hücresini kopyalayıp mail olarak göndersin.
mevcut bir mail gönderme makrom var zaten o makronun içine bunu da gömerek çalıştıracağım. ikisi bir arada olduğunda karışmaz umarım. mevcut makrom aşağıdadır.
yardımcı olursanız memnun olurum arkadaşlar.
a3 hücresi dolu ise belirlenen adreslere a3 hücresini kopyalayıp mail olarak göndersin.
mevcut bir mail gönderme makrom var zaten o makronun içine bunu da gömerek çalıştıracağım. ikisi bir arada olduğunda karışmaz umarım. mevcut makrom aşağıdadır.
yardımcı olursanız memnun olurum arkadaşlar.
Kod:
Sub sendMail24()
ActiveSheet.PageSetup.PrintArea = "GECE"
ActiveSheet.PrintOut
'Shell "yedekle.bat"
ActiveSheet.Unprotect 123
Range("T149:AE165").Select
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
Dim xSheet As Worksheet
Dim xAcSheet As Worksheet
Dim xFileName As String
Dim xSrc As String
On Error Resume Next
TempFilePath = Environ$("temp") & "\RangePic\"
If Len(VBA.Dir(TempFilePath, vbDirectory)) = False Then
VBA.MkDir TempFilePath
End If
Set xAcSheet = Application.ActiveSheet
For Each xSheet In Application.Worksheets
xSheet.Activate
Set xRg = xSheet.Application.Selection
If xRg.Cells.Count > 1 Then
Call createJpg(xSheet.Name, xRg.Address, "DashboardFile" & VBA.Trim(VBA.Str(xSheet.Index)))
End If
Next
xAcSheet.Activate
With Application
.Calculation = xlAutomatic
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
xSrc = ""
xFileName = Dir(TempFilePath & "*.*")
Do While xFileName <> ""
xSrc = xSrc + VBA.vbCrLf + "<img src='cid:" + xFileName + "'><br>"
xFileName = Dir
If xFileName = "" Then Exit Do
Loop
xHTMLBody = "<span LANG=tr>" _
& "<p class=style2><span LANG=TR><font FACE=verdana SIZE=3>" _
& "Sayın İlgililer;<br> " _
& "24/08 Vardiyasında Depomuza Giren, Depomuzdan Sevkedilen, Kalan Depo miktarları ve Günlük özet tablosu aşağıda yer almaktadır.<br>" _
& "<br> " _
& "<br> " _
& "<br> " _
& xSrc _
& "<br>Bilgilerinize.</font></span>"
With xOutMail
.Subject = ""
.HTMLBody = xHTMLBody
xFileName = Dir(TempFilePath & "*.*")
Do While xFileName <> ""
.Attachments.Add TempFilePath & xFileName, olByValue
xFileName = Dir
If xFileName = "" Then Exit Do
Loop
.To = "mail@mail.com"
.CC = "mail@mail.com"
.Subject = "24/08 Vardiya Sonu ve Günlük Hareket Raporu"
'.Send
.Display
End With
If VBA.Dir(TempFilePath & "*.*") <> "" Then
VBA.Kill TempFilePath & "*.*"
ActiveWindow.ScrollColumn = 1
Range("A125").Select
End If
ActiveSheet.Protect 123
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
Dim xRgPic As Range
ThisWorkbook.Activate
Worksheets(SheetName).Activate
Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
xRgPic.CopyPicture
' With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
' .Activate
' .Chart.Paste
' .Chart.Export Environ$("temp") & "\RangePic\" & nameFile & ".jpg", "JPG"
' End With
Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub