Excel mail'i PDF olarak atma

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Arkadaşlar, hocalarımız. Ben iş yerinde çok sayıda mail atıyorum. Excel yapacağım. Her sayfasına atacağım mail'i hazırlayacağım. (zaten her mail 1 A4 sadece)
Benim mail adresim muratgunay@..........com yani şirket maili. Mailler benim mailimden atılmış gibi gidecek. Ben sayfaları hazırlayıp (linkler falan, resimler). Mesela Sayfa1 şu adrese, Sayfa2 şu adrese. Sayfa3 şu adrese. Tek tıkla, adreslere PDF'e dönüştürüp atacak.
Eğer mümkün olursa benim için mükemmel olacak. Şu an için PDF'e dönüştürüp OUTLOOK ile mail atıyorum.
Saygılarımla.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,159
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Google arama kutusuna aşağıdaki ifadeyi yazıp arama yaparsanız birçok benzer konuya erişebilirsiniz.

pdf+mail excel.web.tr
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
@Korhan Ayhan hocam. Arattırdım, hatta bir kaç sonuca ulaştım ama benim istediğim biraz daha farklı, isterseniz örnek dosya üzerinden bakarsanız. Size zahmet hocam. Şimdiden teşekkür ederim.
Saygılarımla.
 

Ekli dosyalar

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Tüm mailleri tek seferdemi göndermek istersiniz yoksa
herkesin kendi sayfasındayken gönder komutumu verirsiniz.

.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
.

Tüm mailleri tek seferdemi göndermek istersiniz yoksa
herkesin kendi sayfasındayken gönder komutumu verirsiniz.

.
Hocam, siz sorana kadar aklımda öyle bir şey yoktu. Zira ben manuel gönderdiğim için, o gün olura bir aboneye mail gitmeyecekse göndermiyorum. Ama pratik olan tek sefer değil mi.
Gitmediği çok nadir oluyor zaten. Mail listesi sayfası sabit zaten, mail ekleme ve çıkarma için. Abone ekleme çıkarma için. Oradaki abonenin mail adreslerini, mail giderken silsem işe yarar sanırım.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Şimdilik her sayfa için manuel yapalım.
Toplu gönderim için gerekirse döngüye alarak yine yaparız.

.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
.

Şimdilik her sayfa için manuel yapalım.
Toplu gönderim için gerekirse döngüye alarak yine yaparız.

.
Hocam, siz daha iyi bilirsiniz. Yalnız ben abone ve aboneye mail ekleme yapabilecek miyim. Bunlar 2 güne bir mail değiştirir 😊 2 güne bir sizi rahatsız etmeyeyim.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Aşağıdaki kodları abonelerin sayfasındayken çalıştırarak test edin.

Sayfa isimleri ile mail listesi sayfası 1.satırdaki isimler aynı olmalı. (büyük/küçük harf dahil)
Masaüstünde PDF klasörü oluşturun.

Kod:
Sub KOD()

    Dim S1 As Worksheet: Set S1 = Sheets("Mail listesi")
    sayfaad = ActiveSheet.Name
    dosyaad = sayfaad & "_" & Format(Now, "ddmmyyyy_hhmmss") & ".pdf"
    dosyayolu = CreateObject("WScript.Shell").specialfolders("Desktop") & "\PDF\" & dosyaad
    mailadresi = ""
   
    For a = 1 To S1.Cells(1, Columns.Count).End(1).Column
    If S1.Cells(1, a) = sayfaad Then
    For b = 2 To S1.Cells(Rows.Count, a).End(3).Row
    mailadresi = S1.Cells(b, a).Value & ";" & mailadresi
    Next b
    Exit For
    End If
    Next a
       
    If mailadresi = "" or mailadresi = ";" Then
    MsgBox "Mail Adresi Bulunamadı" & Chr(10) & "İptal", vbCritical
    Exit Sub
    End If
       
    Sheets(sayfaad).ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=dosyayolu _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
       
    Dim xlOutlook   As Object
    Dim xlMail      As Object
    Set xlOutlook = CreateObject("Outlook.Application")
    Set xlMail = xlOutlook.CreateItem(0)

    With xlMail
        .To = mailadresi
        .CC = ""
        .Subject = "Konu"
        .Body = "Mesaj"
        .Attachments.Add dosyayolu
        .Save
        .Send
    End With
   
    Set xlMail = Nothing
    Set xlOutlook = Nothing
   
    Kill dosyayolu

    MsgBox sayfaad & Chr(10) & "Mail gönderildi", vbInformation

End Sub
.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
@Emir Hüseyin Çoban hocam, şimdi bu kodu "BU ÇALIŞMA KİTABI" yapıştırıyorum.
Muhtemelen ben yapamadım. Çalıştır diyeceğim, kodu görmüyor.
 
Son düzenleme:

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
x 400 diye hata alıyorum hocam.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Kodları uygulayıp, hata aldığınız dosyayı yüklerseniz. İncelerim.

.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
2 dakikaya gönderiyorum hocam. Bilgisayar yeniden başlattı.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Aşağıdaki makro güvenlik ayarlarını da yapmalısınız.

222462

.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,162
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
@Emir Hüseyin Çoban hocam. Akşam zamanı vaktinizi almayayım.
Teşekkür ederim ilginize. Bir çözüm bulunacağından eminim.
Tekrar teşekkür ederim.
 
Üst