Userform da Mail Penceresine Dosya Ekleme Hakkında

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
Merhabalar;
Form daki örneklere bakarak ,UserForm da Mail yolla butonuna bastığımda Outlook penceresi açılıyor ve form içindeki Textbox 9 daki değeri mail adresi olarak alıyor.Açıklamamı da yazıyorum. Bu kısma kadar sorunum yok.Kullanılan kodlar;
Kod:
Private Sub CommandButton6_Click()

Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
With objMail
    .To = TextBox9.Value
    .Subject = "Otomatik mesaj"
    .Body = "Bu e-posta deneme amaçlı gönderilmiştir"
    .Display
End With
Set objMail = Nothing
Set objOL = Nothing
End Sub
Dosya eklemem gerekiyor fakat bu noktada sıkıntı yaşıyorum. Hasta raporlarını protokol numaralarına göre PDF olarak depoladığım bir adet klasörüm mevcut.Amacım bu klasörden hasta protokol numarasına göre arama yaptırıp,bulunan dosyayı mail penceresine eklemek.
Form da bulunan "Textbox 1" değerini "C:\Users\murat\Desktop\f" klasöründe arayıp bulunan dosyayı açılan mail penceresine eklemek istiyorum.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
.Display dan önce bunu ekle

Kod:
 .Attachments.Add "C:\Users\murat\Desktop\f"
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Halit Bey,ekledim fakat "yalnızca dosyalar ve nesneler ek olabilir" uyarısı çıktı.
Burada anlatılmak istenen kırmızı yere dosya adresini yazacaksınız.

Kod:
.Attachments.Add    [COLOR="Red"]"C:\Users\murat\Desktop\f"[/COLOR]

Kod:
.Attachments.Add  [COLOR="Red"]"Dosya adresi"[/COLOR]
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
Hmm,Halit Bey;
Yapmak istediğim;
Textbox 1 de (bu değer değişkenlik gösterebiliyor) mesela 01052015-1 protokol nosu yazsın. Bu protokol nosunu "C:\Users\murat\Desktop\f" du klasörde arayıp bulunca açılan mail penceresine eklemesini istiyorum.

Şİmdi dosya adı derken hangisini yazmam gerekiyor.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
:oops::oops: ben neyi göremiyorum.:-(
 
Katılım
6 Temmuz 2015
Mesajlar
926
Excel Vers. ve Dili
2003
"C:\Users\murat\Desktop\f\01052015-1" & ".pdf"

Kırmızı yerine Textbox1'den değer aldırabilirsiniz.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
"C:\Users\murat\Desktop\f\01052015-1" & ".pdf"

Kırmızı yerine Textbox1'den değer aldırabilirsiniz.
Şaban Bey,ilginize teşekkür ederim.Evet şimdi oldu dosya adını yazdığımda ekledi.Fakat Textbox 1 değerini alamadım.Dosya adı yerine "TextBox1.Value" bu şekilde yazdım olmadı.Muhtemelen yanlış yazdım.Nasıl eklemem gerekecek acaba,textbox 1 değerini alması için..
 
Katılım
6 Temmuz 2015
Mesajlar
926
Excel Vers. ve Dili
2003
Halit hocamın izni ile, konuya müdahele etmiş bulunduk. Bu şekilde deneyiniz.

"C:\Users\murat\Desktop\f\" & Textbox1.Value & ".pdf"
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
Sayın Halit ve Şaban Bey,ilginize çok çok teşekkür ederim.Evet tam istediğim gibi oldu.:dua2::mutlu::mutlu:
Son bir ricam olsa,şimdi son hali ile kodlarım şu halde,
Kod:
Private Sub CommandButton6_Click()

Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
With objMail
    .To = TextBox9.Value
    .Subject = "Otomatik mesaj"
    .Body = "Bu e-posta deneme amaçlı gönderilmiştir"
     .Attachments.Add "C:\Users\murat\Desktop\f\" & TextBox1.Value & ".pdf"
    .Display
End With
Set objMail = Nothing
Set objOL = Nothing
MsgBox "Mail gönderildi ."
End Sub
Acaba mail gönderilince form içindeki textbox 18 e "gönderildiği tarih / mail gönderildi" notu yazdırabilir miyiz.:oops:
 
Katılım
6 Temmuz 2015
Mesajlar
926
Excel Vers. ve Dili
2003
Eklenecek dosya yok ise hata veriyor mu acaba ?
Aşağıdaki şekilde bir deneyeniz.
Kod:
Private Sub CommandButton6_Click()
[B][COLOR="red"]On Error Goto Hata[/COLOR][/B]
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
With objMail
    .To = TextBox9.Value
    .Subject = "Otomatik mesaj"
    .Body = "Bu e-posta deneme amaçlı gönderilmiştir"
     .Attachments.Add "C:\Users\murat\Desktop\f\" & TextBox1.Value & ".pdf"
    .Display
End With
Set objMail = Nothing
Set objOL = Nothing
[COLOR="Red"][B]Textbox18 = Format(Date,"dd.mm.yyyy") & " mail gönderildi."
MsgBox "Mail gönderildi ."
Exit Sub 
Hata:
Msgbox"Dosya bulunamadı"[/B][/COLOR]
End Sub
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
Şaban Bey,çok teşekkür ederim ilginize tam istediğim gibi olmuş.:bravo::dua2::mutlu::mutlu:
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,570
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Bir rica

Sayın yesimgurol,


İçinde veri olmayan kullandığınız dosyanın en son halini gönderebilir misiniz?

İlginiz ve yardımınız için önceden teşekkürler.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,570
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Sayın yesimgurol,


İzin verirseniz dosyanızı bekliyorum.

Yardımınız için teşekkürler.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
952
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
14-02-2026
Sayın yesimgurol,


İzin verirseniz dosyanızı bekliyorum.

Yardımınız için teşekkürler.
Dosyayı ekledim.Açılan kayıt formunda listview penceresinde herhangi bir veriye çift tıklandığında düzenleme,mail yollayabileceğiniz form açılıyor.Ekli dosyada ben bir adet örnek pdf dosyası ilave ettim.(f klasöründe) Gönderilecek dosya ismi textbox 1 e göre ayarlı. Mail yolla dediğinizde textbox 1 değerini f klasöründe arar bulur ise mail penceresine ekler.Bu arada mail gönder kodalrında dosya yolunu kendinize göre ayarlamayı unutmayınız. Umarım faydalı olur.İyi çalışmalar.
 

Ekli dosyalar

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,570
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Teşekkürler

İnceliğiniz ve paylaşımınız için teşekkürler Sayın yesimgurol.

Bu arada, emek ve katkı veren üstatlara da teşekkürler.

Sevgi ve saygılar.
 

mehoaga

Altın Üye
Katılım
16 Mart 2009
Mesajlar
192
Excel Vers. ve Dili
Excel 2003 ve 2007
Altın Üyelik Bitiş Tarihi
30-06-2025
İnceliğiniz ve paylaşımınız için teşekkürler Sayın yesimgurol.

Bu arada, emek ve katkı veren üstatlara da teşekkürler.

Sevgi ve saygılar.
yesimgurol hanım;
Gayet güzel olmuş. ellerinize sağlık. paylaşım için tşk ler.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Mail gönderme işlemi ile ilgili mail gönder e ait kodu bu şekilde denermisiniz.

not:dosyanın yanında mutlaka f klasörü olmalı

kod:

Kod:
Private Sub CommandButton6_Click()
msg2 = MsgBox("Mail göndermek istiyormusunuz.? ", vbYesNo + vbInformation, "u y a r ı !")
If msg2 = vbNo Then
Exit Sub
End If

msg1 = MsgBox("Mail dosyası göndermek istiyormusunuz.?", vbYesNo + vbInformation, "u y a r ı !")

On Error GoTo Hata
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
With objMail
    .To = TextBox9.Value
    .Subject = "Otomatik mesaj"
    .Body = "Bu e-posta deneme amaçlı gönderilmiştir"
         
If msg1 = vbYes Then
Mail_Dosyası = ThisWorkbook.Path & "\f\" & TextBox1.Value & ".pdf"  ' Eklene dosya
If CreateObject("Scripting.FileSystemObject").FileExists(Mail_Dosyası) = True Then
.Attachments.Add Mail_Dosyası
Else
MsgBox (Mail_Dosyası & Chr(10) & "Eklenecek liste dosyası yok"): Exit Sub
End If
     
    .Display
End With
Set objMail = Nothing
Set objOL = Nothing
TextBox18 = Format(Date, "dd.mm.yyyy") & " mail gönderildi."
MsgBox "Mail gönderildi ."
Exit Sub
Hata:
MsgBox "Dosya bulunamadı"
End Sub
 
Üst