Soru PDF Yap Mail Olarak Gönder

Katılım
7 Şubat 2021
Mesajlar
441
Excel Vers. ve Dili
2010, Türkiye
İyi akşamlar;
Ekli dosyamda PDF sayfasında ki son dolu satıra kadar olan hücrelerdeki verileri buton ile PDF dosyayı yapıp ek olarak E7 hücresi gönderen, E8 hücresi Alıcı, E9 hücresi Konu ve 10 Hücresi içerik olarak mail olarak göndermek istiyorum. Bu konuda desteğinize ihtiyacım var. Yardımcı olursanız sevinirim saygılar.
 

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
Daha önce forumda bu konu işlenmişti.

 
Katılım
7 Şubat 2021
Mesajlar
441
Excel Vers. ve Dili
2010, Türkiye
Korhan bey merhabalar;
Ekli dosyada uyarlamış olduğum dosyada ki makro ile;
1. Buton Masa Üstüne PDF dosyası oluşturuyorum.
2.Buton ile Bu dosyayı seçiyorum.
3.Buton ile ise bu seçmiş olduğum dosyayı gönderiyorum.
Benim yapmak istediğim bu işlem tek butona düşürüp Masa üstüne PDF dosyası oluşturmadan ve dosya seçme işlemi yapmadan Mail Gönder butonuna bastığımız zaman sadece PDF sayfasını son satırdaki veriye göre Veri sayfasındaki E7 hücresindeki isimle PDF oluşturup E8 hücresinde mail adresi yazılı olan kişiye gönderebilir miyiz?
Dosya link :
 

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
Verdiğim linkleri inceleyiniz. Benzer uygulamaların olması gerekiyor.
 
Katılım
7 Şubat 2021
Mesajlar
441
Excel Vers. ve Dili
2010, Türkiye
Diğer işlemleri yaptım. Fakat dosyayı kaydetmeden direk olarak PDF olarak gönderilmesini çözemedim
 

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
Aşağıdaki yöntemle tüm makrolarınızı peşpeşe çalıştırabilirsiniz.

C++:
Sub Tumunu_Calistir()
Call Birinci Makronuzun Adı
Call İkinci Makronuzun Adı
Call Üçüncü Makronuzun Adı
End Sub
 
Katılım
7 Şubat 2021
Mesajlar
441
Excel Vers. ve Dili
2010, Türkiye
Call İkinci Makroda dosya seçme yolu var .Yine dosya seçmeye işlemi yapmak gerekiyor.
 

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
Dosyanın adını E9 hücresinden aldırmışsınız.

Orada Tekkeköy yazıyor. Dosyanızın adı bu mu olacak?
 

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
Sayfadaki TextBox nesnesinde ise aşağıdaki isim yazıyor.

GELEMEN -PUHANTAJ CETVELİ.pdf

Tam olarak dosyanızın ismi ne olacak yazar mısınız?
 
Katılım
7 Şubat 2021
Mesajlar
441
Excel Vers. ve Dili
2010, Türkiye
Korhan Bey dosyanın ismini veri sayfasında ki E7 hücresinden alacak
 

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
Kendinize göre düzenlersiniz.

Bir butona kodu tanımlayp kullanabilirsiniz.

Diğer kodlarınızı silebilirsiniz.

C++:
Option Explicit

Sub MAIL_GONDER()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim Uygulama As Object, Yeni_Mail As Object
    Dim Yol As String, Dosya_Adi As String, Son As Long
   
    Set S1 = Sheets("PDF")
    Set S2 = Sheets("VERİ")
   
    Yol = ThisWorkbook.Path & Application.PathSeparator
    Dosya_Adi = S2.Range("E3").Value & "-" & S2.Range("E7").Value & ".pdf"

    Son = S1.Cells(S1.Rows.Count, "B").End(xlUp).Row
   
    S1.Range("A1:AR" & Son).ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:=Yol & Dosya_Adi, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
   
    On Error Resume Next
    Set Uygulama = GetObject(, "Outlook.Application")
    On Error GoTo 0
  
    If Uygulama Is Nothing Then Call Shell("Outlook.exe", vbHide)
  
    Set Uygulama = CreateObject("Outlook.Application")
    Set Yeni_Mail = Uygulama.CreateItem(0)

    With Yeni_Mail
        .Display
        .To = S2.Range("E8").Value
        .Subject = S2.Range("E9").Value
        .HtmlBody = S2.Range("E10").Value & vbCr & .HtmlBody
        .Attachments.Add Yol & "\" & Dosya_Adi
        .Save
        .Send
    End With
   
    Set S1 = Nothing
    Set S2 = Nothing
    Set Uygulama = Nothing
    Set Yeni_Mail = Nothing
   
    MsgBox "Mail gönderilmiştir.", vbInformation
End Sub
 
Katılım
7 Şubat 2021
Mesajlar
441
Excel Vers. ve Dili
2010, Türkiye
Korhan bey şöyle bir uyarı çıkıyor. "Bir program sizin adınıza e-posta iletisi göndermeye çalışıyor. Bu beklenmiyordu, Reddet 'e tıklayın ve virüsten koruma yazılımınızın güncel olduğunu doğrulayın. " Neden olabilir ?
 

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
Hangi Excel sürümünü kullanıyorsunuz?
 

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
Eğer 2003 kullansaydınız uyarı için normal diyebilirdim. Ama bende 2010 versiyonda denemiştim. Dediğiniz uyarıyı almıyorum.

Peki sizin paylaştığınız kod bu uyarıyı veriyor muydu?
 

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
Otomatik gönderimi virüs saldırısı gibi algılayabiliyor.

Bu durumda benim önerdiğim kod bloğunda aşağıdaki satırı bir sonraki satır gibi değiştirip deneyiniz.

.Send

Olması gereken;

SendKeys "%G", True
 

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
Ek olarak dosyanızda PUHANTAJ olarak kullanım yapmışsınız. Doğrusu PUANTAJ olması gerekir. Düzeltirseniz iyi olur.
 
Üst