MrJazsohanisharma

Excel Sayfasını Mail Gönderme

mail55

Excel çalışma sayfamızı bir makro yardımı ile nasıl kısa bir sürede E-mail gönderebileceğimizi anlatmaya çalışacağım, bu çalışmamı resim ile de destekleyeceğim.


Başlayalım, excel çalışma kitabımızı açıyoruz hangi sayfayı mail olarak göndermek istiyorsak o sayfa açık olsun...

* Çalışma sayfasına sağ tık yaparak "Kod görüntüle" diyoruz veya ALT + F11.

kod-goruntule

* Açılan Vba sayfasında "Insert" menüsünden "Modüle" yi açıyoruz.

module


* Açılan Modüle aşağıda vereceğim kodu kopyalayıp ehlideyazar@gmail.com yazar yerdeki e-mail adreslerini kendi e-mail adresleriniz ile değiştirin.
module

Sub mailgonder()
ActiveSheet.Copy 'aktif sayfayı kopyalar
With ActiveWorkbook
         .SendMail Recipients:=Array("ehlideyazar@gmail.com", 

"ehlideyazar@gmail.com", "ehlideyazar@gmail.com"), _
          Subject:="Sipairiş Genel Durum "
         .Close SaveChanges:=False 'aktif sayfayı kaydetmeden 

kapatır
End With
MsgBox "Mail gönderildi"
End Sub






* Ardından Excel sayfamıza dönelim ve Geliştirici sekmesini açalım, Ekle den sonra  resimdeki gibi butona tıklayalım Mouse' nin sağ tuşuna basılı tutarak menü için belirlediğimiz yere bir dörtken çizelim ve sağ tuştan parmagımızı çekelim.

mail3
MAIL45



* Tuşumuzu da oluşturduğumuza göre artık bir denem yapabiliriz .

mail5

İzin Ver seçeneğini seçtiğiniz de mailiniz belirlediğiniz adreslere ulaşacaktır.
Örnek Çalışma da ekliyorum Buradan bakabilirsiniz.


Alternatif Olarak;

Gönderilen E-maillerde excel içeriğinin text olarak görünmesi için (formüllü olarak görünmemesi için) aşağıda verdiğim örnek kodları kullanabilirsiniz.

Sub SendShByEmail()
Dim OutApp As Outlook.Application
Dim NewMail As Outlook.MailItem
Dim ShName As String, WbName As String

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlManual

Sheets(ActiveSheet.Name).Copy

ShName = ActiveSheet.Name

ActiveSheet.DrawingObjects.Delete
Dim X As Range
For Each X In [a1:ar56]
If X.HasFormula = True Then
X.Value = X.Value
End If
Next X

WbName = ThisWorkbook.Path & "\" & ShName & ".xls"

ActiveWorkbook.SaveAs WbName, FileFormat:=-4143
ActiveWorkbook.Close False


Set OutApp = New Outlook.Application
Set NewMail = CreateItem(olMailItem)
With NewMail
.To = "e-mail@adresiburaya.com" & ";" & "e-mail@adresiburaya.com" & ";" & "e-mail@adresiburaya.com" & ";" & "e-mail@adresiburaya.com" & ";" & "e-mail@adresiburaya.com"
.Subject = "Sipariş Genel Durum"
.Body = "Sipariş Genel Durum Ektedir. İyi Günler."
.Attachments.Add WbName
.Save
.Send
End With
Set NewMail = Nothing
Set OutApp = Nothing
Set VBComp = Nothing

Kill WbName

Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


For Each X In [a1:ar56]; a1:ar56 olan kısım excel sayfası içerisinde hangi alanların mail ile gönderileceğini belirler.

Mail göndermeden önce sayfa ön izleme yaparak sayfa düzenlemsi yapabilirsiniz.

mail gönder tuşuna tıkladığınızda e-mail otomatik olarak gönderilir.

Gönderilmiş mailler klasöründe görebilirsiniz.

4 Yorumlar

  1. merhaba kod için teşekkürler. benim şöyle bir eklemeye ihtiyacım var. Ana sayfadan formüller ile veri alan 60 ayrı sheetım var bunları ayrı ayrı mail göndermem gerekiyor. İlgili sayfalarda eklenecek mail bilgileri var. Sizin kodda ilgili sayfadan maili almasını yaptım ancak çok kod bilgim yok diğer kafamdakileri ekleyemedim bir türlü. İsteğim her sayfada ayrı tuş koyarak sadece oı sayfayı ayırmak(sizin kod bunu yapıyor) ayırdığı sayfada formülleri öldürmesi ve maile ekleyerek ön izleme yaptıkdan sonra send tuşuna ben basıyım istiyorum.

    YanıtlaSil
    Yanıtlar
    1. Merhaba,
      Konu güncellenmiştir. Diğer soru ve görüşleriniz için iletişim kısmını kullanabilirsiniz.

      İyi Günler

      Sil
  2. outlook 2016 da konu kısmına yazılan hiç bir şey gözükmüyor ve konu yok şeklinde iletiliyor mailler. bunu nasıl düzeltebiliriz?

    YanıtlaSil
    Yanıtlar
    1. Konus kısmında : .Subject = "Sipariş Genel Durum" tırnak içerisinde olan kısım konuda yer alan alandır.

      Sil
Yorum Gönder
Daha yeni Daha eski