PDF mail

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,163
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Arkadaşlar, sayın hocalarım. Çok saygı duyduğum hocamın tavsiyesi üzerine kendim bir şeyler yapmaya çalıştım.
Bir dosya hazırladım. Seçili alanı PDF olarak mail atıyor. Masaüstünde açtığım dosyaya kaydediyor (hatta siliyor)
Tek bir şeyi yapamadım. O hususta yardımınızı rica ediyorum.
Ben PDF'e dönüşünce adı RAPOR oluyor ve her seferinde böyle gidiyor. PDF isim diye B1 hücresine yazsam. O isimle gitse ve kaydolsa.
Nasıl yapabilirim.
Şimdiden teşekkür ederim.
Saygılarımla.

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
ActiveSheet.Range("A6:E30").Select
ChDir "C:\Rapor.pdf"
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\murat\OneDrive\Masaüstü\AAA\Rapor.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
  Dim objOutlook As Object
                Dim objMail As Object
                Set objOutlook = CreateObject("Outlook.Application")
                Set objMail = objOutlook.CreateItem(0)
                With objMail
                .Display
                .to = Cells(2, 2)
                .CC = Cells(3, 2)
                .Subject = Cells(4, 2)
                .Body = Cells(5, 2)
.Attachments.Add "C:\Users\murat\OneDrive\Masaüstü\AAA\Rapor.pdf"
.Save
.Send
End With
Set objMail = Nothing
Set objOutlook = Nothing
MsgBox "Mail Gönderildi."
'Kill "C:\Users\murat\OneDrive\Masaüstü\AAA\Rapor.pdf"
End Sub
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Pdf kayıt adımı hangi satırda oluyorsa orada "rapor" yazan yeri silip B1 hücresini tanımlamanïz yeterli olacaktır. Bu işlemi yaparken birleştirme & sembolünü kullanmalısınız.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,163
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Pdf kayıt adımı hangi satırda oluyorsa orada "rapor" yazan yeri silip B1 hücresini tanımlamanïz yeterli olacaktır. Bu işlemi yaparken birleştirme & sembolünü kullanmalısınız.
ChDir "C:\&B1.pdf"
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\murat\OneDrive\Masaüstü\AAA\&B1.pdf", Quality:= _
Şeklinde mi hocam?
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,163
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
@Korhan Ayhan hocam kodda RAPOR kelimesi yok hâlâ RAPOR diye kaydedip, gönderiyor. Anlamadım.

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
ActiveSheet.Range("A6:E30").Select
ChDir "C:\&Cells(1, 2).pdf"
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\murat\OneDrive\Masaüstü\AAA\&Cells(1, 2).pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
  Dim objOutlook As Object
                Dim objMail As Object
                Set objOutlook = CreateObject("Outlook.Application")
                Set objMail = objOutlook.CreateItem(0)
                With objMail
                .Display
                .to = Cells(2, 2)
                .CC = Cells(3, 2)
                .Subject = Cells(4, 2)
                .Body = Cells(5, 2)
.Attachments.Add "C:\Users\murat\OneDrive\Masaüstü\AAA\&Cells(1, 2).pdf"
.Save
.Send
End With
Set objMail = Nothing
Set objOutlook = Nothing
MsgBox "Mail Gönderildi."
'Kill "C:\Users\murat\OneDrive\Masaüstü\AAA\&Cells(1, 2).pdf"
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnektir..

"C:\Belgelerim\" & Range("B1").Value & ".pdf"
 

muratgunay48

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

"C:\Belgelerim\" & Range("B1").Value & ".pdf"
Hocam, yine aynı şey ya. Kendime kızıyorum. Yapmışım aslında. İki sayfa var. Sayfa 1'in kodunu değiştiriyorum. Sayfa 2'yi mail atıyorum.
Kusura bakmayın, boşu boşuna vaktinizi aldım. Bir daha, daha dikkatli olurum. Kusura bakmayın.
Tekrar teşekkür ederim.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,163
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
@Korhan Ayhan hocam, bu gerekli olduğu için değil. Sadece öğrenmek için soruyorum. Hiç kod açmaya gerek olmadan, kaydedeceği yeri B6'ya yazsak.
"C:\Users\murat\OneDrive\Masaüstü\AAA\" & Range("B1").Value & ".pdf", Quality:= _
Yerine
"& Range("B6").Value &" & Range("B1").Value & ".pdf", Quality:= _
Yazdım ama.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,160
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
@muratgunay48,

Öğrenmeniz için çabalıyorum derken VBA tarafında kullanılan sembolleri kavramanız gerektiği konusunu irdelemek istemiştim.

Bazı işlemlerde mantık kurmanız gerekir.. Bunlar içinde temel bilgilere ihtiyacınız var..

Bunlar nedir...

Metinsel ifadeyi farklı bileşenlerden oluşturabilirsiniz. Bunun için birleştirme operatörü olan & ya da + sembolü kullanılabilir.

Çift tırnak içinde kullandığınız ifadeler METİNSEL değerlerdir.

Birleştirme işlemini yaptıktan sonra kodu adım adım çalıştırarak yaptığınız birleştirmeden oluşan sonucu gözlemleyebilirsiniz.

Aşağıdaki gibi kullanarak sonucu "Immediate" penceresinde oluşan değeri görebilirsiniz.

Debug.Print Birleştime Kodunuz

Ya da aşağıdaki gibi kullanarak mesaj olarak görebilirsiniz.

MsgBox Birleştirme Kodunuz
 

muratgunay48

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

Öğrenmeniz için çabalıyorum derken VBA tarafında kullanılan sembolleri kavramanız gerektiği konusunu irdelemek istemiştim.

Bazı işlemlerde mantık kurmanız gerekir.. Bunlar içinde temel bilgilere ihtiyacınız var..

Bunlar nedir...

Metinsel ifadeyi farklı bileşenlerden oluşturabilirsiniz. Bunun için birleştirme operatörü olan & ya da + sembolü kullanılabilir.

Çift tırnak içinde kullandığınız ifadeler METİNSEL değerlerdir.

Birleştirme işlemini yaptıktan sonra kodu adım adım çalıştırarak yaptığınız birleştirmeden oluşan sonucu gözlemleyebilirsiniz.

Aşağıdaki gibi kullanarak sonucu "Immediate" penceresinde oluşan değeri görebilirsiniz.

Debug.Print Birleştime Kodunuz

Ya da aşağıdaki gibi kullanarak mesaj olarak görebilirsiniz.

MsgBox Birleştirme Kodunuz
Anladım hocam. Ben biraz bunu yapmaya çalışacağım.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,163
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
@Korhan Ayhan hocam, "" işaretini kaldırdım sadece & koydum oldu.
Teşekkür ederim.
Range("I6").Value & Range("I1").Value & ".pdf", Quality:= _
 
Son düzenleme:
Üst