70 öğretmenin ders programını e-posta gönderme

Katılım
14 Eylül 2024
Mesajlar
3
Excel Vers. ve Dili
2021 tr
İyi günler arkadaşlar. 70 öğretmenin ders programını exceldeki e posta adreslerine gönderebilmenin kolay yolunu bulmaya çalışıyorum. Her öğretmen için ayrı ayrı pdf olacak. Dosya adı isim ya da numara olabilir fark etmez. Bunu excelle ya da excel dışındaki bir programla kişiye özel göndermek istiyorum. Değerli önerilerinizi bekliyorum.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
557
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Öncelikle, Excel dosyanızda her personelin bilgilerini içeren bir tabloya ihtiyacınız var. Örnek bir düzen şu şekilde olabilir:

A

B

C

D

İsim

E-posta

PDF Dosya

Konu

Ali Veli

ali@example.com

ali.pdf

Ders Programı

Ayşe Yılmaz

ayse@example.com

ayse.pdf

Ders Programı


Bu tabloyu Personel adlı bir sayfada tutabilirsiniz.

Insert menüsünden Module seçeneğini tıklayarak yeni bir modül oluşturun.

Sub SendEmails()
Dim OutApp As Object
Dim OutMail As Object
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim emailSubject As String
Dim emailBody As String
Dim emailTo As String
Dim pdfPath As String

Set OutApp = CreateObject("Outlook.Application")
Set ws = ThisWorkbook.Sheets("Personel")
l
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row


For i = 2 To lastRow
emailTo = ws.Cells(i, 2).Value
pdfPath = ThisWorkbook.Path & "\" & ws.Cells(i, 3).Value
emailSubject = ws.Cells(i, 4).Value
emailBody = "Merhaba " & ws.Cells(i, 1).Value & "," & vbCrLf & vbCrLf & _
"Lütfen ders programınızı ekli dosyadan kontrol edin."

Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = emailTo
.Subject = emailSubject
.Body = emailBody
.Attachments.Add pdfPath
.Send
End With

Set OutMail = Nothing
Next i

Set OutApp = Nothing

MsgBox "E-postalar başarıyla gönderildi!", vbInformation
End Sub

OutApp: Outlook uygulamasını kontrol etmek için kullanılır.
OutMail: Her bir e-posta mesajını oluşturur.
ws: Personel bilgilerinin olduğu çalışma sayfasını temsil eder.
lastRow: E-posta gönderilecek son satırı bulur.
emailTo, emailSubject, emailBody: E-posta için alıcı, konu ve gövde bilgilerini alır.
pdfPath: E-posta ile gönderilecek PDF dosyasının yolunu belirler.

Outlook Kurulumu: Bu kod, Microsoft Outlook ile çalışır. Bilgisayarınızda Outlook'un kurulu olması ve doğru yapılandırılmış olması gerekir.
PDF Dosyaları: PDF dosyalarının Excel dosyasının aynı klasöründe bulunması gerekmektedir. pdfPath değişkenini, PDF dosyalarının tam yolunu gösterecek şekilde değiştirebilirsiniz.

Bu yöntemle, her personelin kişiselleştirilmiş e-postalarını PDF dosyaları ile birlikte gönderebilirsiniz.

veya

1. Mail Merge (Posta Birleştirme) ve Excel ile
Mail merge, Microsoft Word ile Excel kullanarak kişiselleştirilmiş e-postalar göndermenize olanak tanır. Adımlar şunlardır:
  1. Excel Dosyası Hazırlama:
    • A1 hücresine: Ad, e-posta adresi gibi gerekli bilgileri içeren başlıklar ekleyin.
    • Her personelin adını, e-posta adresini ve dosya adı bilgilerini girin.
  2. Word Dosyasını Hazırlama:
    • Word'de yeni bir belge oluşturun.
    • “Mailings” (Posta) sekmesine gidin ve “Start Mail Merge” (Posta Birleştirmeye Başla) seçeneğini seçin, ardından “E-Mail Messages” (E-Posta Mesajları) seçin.
  3. Veri Kaynağını Seçin:
    • “Select Recipients” (Alıcıları Seç) seçeneğine tıklayın ve Excel dosyanızı seçin.
  4. Mesajınızı Yazın:
    • Mesajınızı oluşturun ve gerekli yerlerde Excel'deki bilgileri eklemek için “Insert Merge Field” (Birleştirme Alanını Ekle) seçeneğini kullanın.
  5. E-Posta Gönderme:
    • “Finish & Merge” (Bitir ve Birleştir) seçeneğine tıklayın ve “Send E-Mail Messages” (E-Posta Mesajlarını Gönder) seçeneğini seçin.
    • Kime: E-posta adresi sütununu seçin, konu başlığı ve mesaj içeriğini belirleyin.
Bu yöntemle e-postalarınızı kişiselleştirerek gönderebilirsiniz ancak ek olarak PDF dosyalarını da eklemeniz gerekebilir.
 
Katılım
14 Eylül 2024
Mesajlar
3
Excel Vers. ve Dili
2021 tr
Sayın hocam ancak deneme imkanım oldu. Sub SendEmails() satırında hata veriyor. Sarı sütunda kalıyor. Outlook yeni sürüm mevcut ondan olabilir mi? Sub or function not defined hatası alıyorum. İşletim sistemim win 11.
 
Son düzenleme:
Katılım
14 Eylül 2024
Mesajlar
3
Excel Vers. ve Dili
2021 tr
Kendim bulup çözdüm sorunu ama şimdi de Set ws = ThisWorkbook.Sheets("Personel") satırında hata alıyorum.
Runtime Error 9: Subscript Out of Range hatası veriyor.
 
Son düzenleme:

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
Runtime Error 9: Subscript Out of Range hatası, genellikle belirtilen çalışma sayfası adının çalışma kitabında mevcut olmadığında ortaya çıkar.
Sayfa Adının Doğruluğu: Çalışma sayfası adının "Personel" tam olarak çalışma kitabında göründüğü şekilde yazıldığından emin olun. Özellikle başında veya sonunda boşluk olup olmadığını kontrol edin.
 
Üst