• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Makroyla email gonderme

Katılım
27 Haziran 2004
Mesajlar
66
Merhaba, :hey:

Makroyla microsoft outlook üzerinden seçtiğim bir email adresine seçtiğim bir dosyayı ekleyerek nasıl email ile otomatik olarak gönderebilirim.Teşekkürler.iyi çalışmalar.
 
VBE'de Tools >> References menüsünden Microsoft Outlook x.0 Object Library referansını ekledikten sonra;

Kod:
Sub SendEmail()
Dim OutApp As Outlook.Application
Dim NewMail As Outlook.MailItem
Set OutApp = New Outlook.Application
Set NewMail = CreateItem(olMailItem)
With NewMail
.To = "falan@filan.com"
.Subject = "Deneme"
.Body = "Bu e-mail deneme amacıyla gönderilmiştir."
.Attachments.Add "C:\Test.xls"
.Save
.Send
End With
Set NewMail = Nothing
Set OutApp = Nothing
End Sub
 
Son düzenleme:
TEÞEKKÜRLER

Bu kod işimi gördü.Çok güzel.Teşekkürler.Yalnız email gönderirken onayımı istiyor ama oda güvenlik açısından önemli herhalde.
 
:? Merhabalar ,bu gönderdiğiniz makroylailgili olarak, excelde sadece bir çalışma sayfasını nasıl email ile gönderebilirim.yani manual yaptığımızda "send this sheet" e basarak gönderiyorum.teşekkürler.
 
@lionamic;

ALPEN'in önerdiği linkte hemen her türlü e-mail kodu bulabilirsiniz, gerçekten güzel bir kaynaktır orası.

Aşağıdaki de, fırından yeni çıkmış dumanı üstünde kendi imalatımızdır..... :mrgreen:

Bu kod, seçilen herhangibir aktif sayfayı, sözkonusu sayfa adında bir kitap haline getirerek, eklenti şeklinde MS Outlook kullanarak e-mail ile gönderir.

Kod:
'******************************************************
'* Sadece Aktif sayfayı MS Outlook ile yollamak için 
'* yapılmış bir çalışmadır 
'* Micosoft Outlook X.0 referansı eklenmelidir ! 
'* Burası Excel vadisi ... 
'* Raider ® 
'* Şubat 2005 
'******************************************************
 
Sub SendShByEmail()
Dim OutApp As Outlook.Application
Dim NewMail As Outlook.MailItem
Dim ShName As String, WbName As String
Dim i As Integer
Dim ModX As Object, VBComp As Object
 
ShName = ActiveSheet.Name
WbName = "C:\" & ShName & ".xls"
 
ThisWorkbook.SaveCopyAs WbName
 
Application.DisplayAlerts = False
Workbooks.Open WbName
For i = Sheets.Count To 1 Step -1
If ActiveWorkbook.Sheets(i).Name <> ShName Then Sheets(i).Delete
Next
 
On Error Resume Next
For Each ModX In ActiveWorkbook.VBProject.VBComponents
Set VBComp = ActiveWorkbook.VBProject.VBComponents(ModX.Name)
ActiveWorkbook.VBProject.VBComponents.Remove VBComp
Next
On Error GoTo 0
Application.DisplayAlerts = True
 
ActiveWorkbook.Close SaveChanges:=True
 
Set OutApp = New Outlook.Application
Set NewMail = CreateItem(olMailItem)
With NewMail
.To = "falan@filan.com"
.Subject = "Deneme"
.Body = "Bu e-mail deneme amacıyla gönderilmiştir."
.Attachments.Add WbName
.Save
.Send
End With
Set NewMail = Nothing
Set OutApp = Nothing
Set VBComp = Nothing
Kill WbName
End Sub
 
Son düzenleme:
Raider,
MS Outlook Kullanmadığım için deniyemedim.Teşekkürler.
ALPEN,
Verdiğin link çok harika..Teşekkürler.
 
@xxrt;

[vb:1:774bc9c86d]
Sub Test()
Msgbox lionamic = xxrt
End Sub[/vb:1:774bc9c86d]

Yukarıdaki prosedur True mu yoksa, False sonucunu mu döndürüyor sizin bilgisayarda ?
 
Raider,

Gönderdiğiniz link çok güzel,bütün sorularımın cevapları burdaymış :hihoho:

Evde outlook kullanmadığım için oluşturduğunuz kodları henüz deneyemedim.Yardımlarınız için teşekkürler.




Lionamic
Sub Test()
MsgBox lionamic = xxrt
End Sub




Yukarıdaki prosedur True mu yoksa, False sonucunu mu döndürüyor sizin bilgisayarda ?

Sorunuzun cevabı FALSE olacak.
 
Sanırım lionamic, True demek istedi.. :hiho: Her iki halde true verir.Sanırım espiri derin di?
 
Merhaba arkadaşlar,
Tam bu aşamada bende bir soru sormak itiyorum izin verirseniz,
siz kitabı kopyalayıp gönderiyorsunuz,
ben yalnız kitabın seçecegim bir sayfasındaki bilgileri autlook experesin mesaj yazılan kısmı ile göndermek istedim ama yapamadım bunun hakkında bana yol gösterebilirmisiniz.
selamlar...
 
aşağıdaki kodu birden fazla kişiye email gönderecek şekilde nasıl düzenleyebilirim?acil yardımlarınızı bekliyorum.teşekkürler.
:kafa:
Sub Email()

Sheets("D.REPORT").Select

Dim source As Range
Dim dest As Workbook
Dim strdate As String

Set source = Nothing
On Error Resume Next
Set source = Range("G3:I8").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If source Is Nothing Then
MsgBox "The source is not a range or the sheet is protect, please correct and try again.", vbOKOnly
Exit Sub
End If

Application.ScreenUpdating = False
Set dest = Workbooks.Add(xlWBATWorksheet)
source.Copy
With dest.Sheets(1)
.Cells(1).PasteSpecial PASTE:=8
' Paste:=8 will copy the column width in Excel 2000 and higher
' If you use Excel 97 use the other example
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
End With

strdate = Format(Now, "dd-mm-yy")
With dest
.SaveAs "virmanlar" & ThisWorkbook.Name _
& " " & strdate & ".xls"
.SendMail "birisi@birisi.com"
"VDMK2"
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
Application.ScreenUpdating = True


End Sub
 
Selamlar sayın Raider burada veridiğiniz kodla sadece içinde bulunduğumuz sayfayı göndermek istediğimde alıcı adresini de makronun içine yazmış olmamız gerekiyor. Bu uygulamada, outlook açılıp sayfa eklenmiş To ve Subject alanı boş olarak ekrana gelmesi için, makro kodunun nasıl olması gerekir. Yani kod çalıştığında excelde file menüsünden send to ile kitap ekleyip gönderme şeklinde çalışması için. Þayet bu yapılırsa adres satırını istediğimiz adresleri yazıp gönderebiliriz ve makro kodlarına müdahale etme gereği ortadan kalkar. Yardım edecek tüm arkadaşlara şimdiden teşekkürler.
 
aynı sorunla bende karşılaştım. Bende workbook içinde yer alan bir sürü sheet ten sadece birini maile attach yapmak istiyorum ancak verilen kod belirlenmiş kişilere gönderiyor maili. Oysa her bir sheetin başka kişilere gitmesi gerek. Bunu kendim to ya yazmalıyım. Bu konuda bende acilen yardım istiyorum.

Yardım edecek arkadaşlara teşekkür
 
Orjinal kodlarda aşağıdaki kısmı, eskisiyle değiştirin....

[vb:1:6b755bdaa3] Set NewMail = CreateItem(olMailItem)
With NewMail
.To = ""
.Subject = ""
.Body = "Bu e-mail deneme amacıyla gönderilmektedir."
.Attachments.Add WbName
.Display
End With
Set NewMail = Nothing
[/vb:1:6b755bdaa3]
 
Peki.... ne dedi ?

(MS Outlook'da değil de, MS Excel'de o referansı verdiğini kabul ederek....)
 
Geri
Üst