Excel'de Oluşturulan Listeden Seçilen İsme Mail Gönderme

Katılım
4 Nisan 2024
Mesajlar
8
Excel Vers. ve Dili
2016 TR
Merhabalar,
Excel'de belirlenen konular hakkında sorumlu seçimi için isim listesi oluşturdum. Listeden seçmiş olduğum isme o konunun isim ve açıklama hücrelerini de mail olarak göndermek istiyorum. Böyle bir otomatize mümkün müdür?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,535
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Forumda mail ya da outlook ifadeleriyle arama yaparsanız konuyla ilgili bolca örnek bulabilirsiniz..
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,266
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2024
Evet, bu işlemi otomatize etmek mümkündür. Şu formatta bir liste oluşturarak, her bir satırı döngü ile işleyerek her mail arasına 5 saniye bekleme süresi ekleyerek ve istediğiniz bilgileri içeren bir e-posta gönderimi gerçekleştirebiliriz.

Excel'de belirlenen konular hakkında sorumlu seçimi için listeyi
a sütununda isim listesi ,
b sütununda mail adresleri
c sütununda konunun ismi,
d sütununda açıklama ,
e sütununda içerik gelecek iekilde oluşturun.

Sub SendTopicInfoEmails()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim RecipientName As String
Dim EmailAddress As String
Dim Topic As String
Dim Description As String
Dim Content As String
Dim i As Long
Dim LastRow As Long

' Outlook uygulamasını başlat
Set OutlookApp = CreateObject("Outlook.Application")

' Veri aralığının son satırını bul
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

' Liste boyunca döngü
For i = 2 To LastRow ' İlk satırın başlıklar olduğunu varsayalım
' Verileri al
RecipientName = Cells(i, 1).Value ' A sütunu
EmailAddress = Cells(i, 2).Value ' B sütunu
Topic = Cells(i, 3).Value ' C sütunu
Description = Cells(i, 4).Value ' D sütunu
Content = Cells(i, 5).Value ' E sütunu

' E-posta oluştur
Set OutlookMail = OutlookApp.CreateItem(0) ' 0: MailItem

' E-posta konusu ve içeriği
EmailSubject = "Konu: " & Topic
EmailBody = "Merhaba " & RecipientName & "," & vbCrLf & vbCrLf & _
"Konu: " & Topic & vbCrLf & _
"Açıklama: " & Description & vbCrLf & _
"İçerik: " & Content

' E-posta gönder
With OutlookMail
.To = EmailAddress ' Alıcı e-posta adresi
.Subject = EmailSubject
.Body = EmailBody
.Display ' E-postayı göster
'.Send ' E-postayı otomatik göndermek için bu satırı kullanabilirsiniz
End With

' 5 saniye bekle
Application.Wait (Now + TimeValue("0:00:05"))

' Belleği temizle
Set OutlookMail = Nothing
Next i

' Outlook uygulamasını kapat
Set OutlookApp = Nothing
End Sub

Bu kod, A, B, C, D ve E sütunlarındaki verileri döngü ile işleyerek her bir isim için bir e-posta oluşturur ve gönderir. Her e-posta gönderimi arasına 5 saniyelik bir bekleme süresi eklenmiştir.
 
Katılım
4 Nisan 2024
Mesajlar
8
Excel Vers. ve Dili
2016 TR
Evet, bu işlemi otomatize etmek mümkündür. Şu formatta bir liste oluşturarak, her bir satırı döngü ile işleyerek her mail arasına 5 saniye bekleme süresi ekleyerek ve istediğiniz bilgileri içeren bir e-posta gönderimi gerçekleştirebiliriz.

Excel'de belirlenen konular hakkında sorumlu seçimi için listeyi
a sütununda isim listesi ,
b sütununda mail adresleri
c sütununda konunun ismi,
d sütununda açıklama ,
e sütununda içerik gelecek iekilde oluşturun.

Sub SendTopicInfoEmails()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim RecipientName As String
Dim EmailAddress As String
Dim Topic As String
Dim Description As String
Dim Content As String
Dim i As Long
Dim LastRow As Long

' Outlook uygulamasını başlat
Set OutlookApp = CreateObject("Outlook.Application")

' Veri aralığının son satırını bul
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

' Liste boyunca döngü
For i = 2 To LastRow ' İlk satırın başlıklar olduğunu varsayalım
' Verileri al
RecipientName = Cells(i, 1).Value ' A sütunu
EmailAddress = Cells(i, 2).Value ' B sütunu
Topic = Cells(i, 3).Value ' C sütunu
Description = Cells(i, 4).Value ' D sütunu
Content = Cells(i, 5).Value ' E sütunu

' E-posta oluştur
Set OutlookMail = OutlookApp.CreateItem(0) ' 0: MailItem

' E-posta konusu ve içeriği
EmailSubject = "Konu: " & Topic
EmailBody = "Merhaba " & RecipientName & "," & vbCrLf & vbCrLf & _
"Konu: " & Topic & vbCrLf & _
"Açıklama: " & Description & vbCrLf & _
"İçerik: " & Content

' E-posta gönder
With OutlookMail
.To = EmailAddress ' Alıcı e-posta adresi
.Subject = EmailSubject
.Body = EmailBody
.Display ' E-postayı göster
'.Send ' E-postayı otomatik göndermek için bu satırı kullanabilirsiniz
End With

' 5 saniye bekle
Application.Wait (Now + TimeValue("0:00:05"))

' Belleği temizle
Set OutlookMail = Nothing
Next i

' Outlook uygulamasını kapat
Set OutlookApp = Nothing
End Sub

Bu kod, A, B, C, D ve E sütunlarındaki verileri döngü ile işleyerek her bir isim için bir e-posta oluşturur ve gönderir. Her e-posta gönderimi arasına 5 saniyelik bir bekleme süresi eklenmiştir.
İsteğimi tam olarak açıklayamadım sanırım. Görsel destek olarak bir resim yükledim. Bu resim üzerinden anlatacak olursam;
Bir proje excel de oluşturulacak. Projenin içinde A, B, C, D ve E iş tanımları olacak. İş tanımları durumlarının her biri yönetici tarafından veri doğrulama listesinden açık konuma alınacak, hedef tarih girilecek, açıklama gerekirse girilecek ve son olarak bu iş tanımını Sorumlular içinden veri doğrulama listesinden seçimi yapıldığı takdirde Can'a;
Proje Adı: A Projesi Durum: Açık
İş Tanımı: A İşi Durum: Açık
Hedef Tarihi:
Sorumlu:
Açıklama ve Ekler:

formatında mail gönderilecek.
Ayrıca sorumlu arkadaşımız Can excel dosyasına girip Durumu Çalışılıyor, Hedef Tarihi Değişimi ve Açıklama ve ekler kısmına eklenen bilgilerin excel dosyasını kaydettikten sonra yöneticiye mail gönderilmesini istiyorum.
Umarım açıklayıcı olmuştur. Forumda araştırdım ancak bulamadım, teşekkürler.

Görsel Linki: https://hizliresim.com/qnchw6u
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
178
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
ayn
Evet, bu işlemi otomatize etmek mümkündür. Şu formatta bir liste oluşturarak, her bir satırı döngü ile işleyerek her mail arasına 5 saniye bekleme süresi ekleyerek ve istediğiniz bilgileri içeren bir e-posta gönderimi gerçekleştirebiliriz.

Excel'de belirlenen konular hakkında sorumlu seçimi için listeyi
a sütununda isim listesi ,
b sütununda mail adresleri
c sütununda konunun ismi,
d sütununda açıklama ,
e sütununda içerik gelecek iekilde oluşturun.

Sub SendTopicInfoEmails()
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim RecipientName As String
Dim EmailAddress As String
Dim Topic As String
Dim Description As String
Dim Content As String
Dim i As Long
Dim LastRow As Long

' Outlook uygulamasını başlat
Set OutlookApp = CreateObject("Outlook.Application")

' Veri aralığının son satırını bul
LastRow = Cells(Rows.Count, 1).End(xlUp).Row

' Liste boyunca döngü
For i = 2 To LastRow ' İlk satırın başlıklar olduğunu varsayalım
' Verileri al
RecipientName = Cells(i, 1).Value ' A sütunu
EmailAddress = Cells(i, 2).Value ' B sütunu
Topic = Cells(i, 3).Value ' C sütunu
Description = Cells(i, 4).Value ' D sütunu
Content = Cells(i, 5).Value ' E sütunu

' E-posta oluştur
Set OutlookMail = OutlookApp.CreateItem(0) ' 0: MailItem

' E-posta konusu ve içeriği
EmailSubject = "Konu: " & Topic
EmailBody = "Merhaba " & RecipientName & "," & vbCrLf & vbCrLf & _
"Konu: " & Topic & vbCrLf & _
"Açıklama: " & Description & vbCrLf & _
"İçerik: " & Content

' E-posta gönder
With OutlookMail
.To = EmailAddress ' Alıcı e-posta adresi
.Subject = EmailSubject
.Body = EmailBody
.Display ' E-postayı göster
'.Send ' E-postayı otomatik göndermek için bu satırı kullanabilirsiniz
End With

' 5 saniye bekle
Application.Wait (Now + TimeValue("0:00:05"))

' Belleği temizle
Set OutlookMail = Nothing
Next i

' Outlook uygulamasını kapat
Set OutlookApp = Nothing
End Sub

Bu kod, A, B, C, D ve E sütunlarındaki verileri döngü ile işleyerek her bir isim için bir e-posta oluşturur ve gönderir. Her e-posta gönderimi arasına 5 saniyelik bir bekleme süresi eklenmiştir.

Merhaba aynı işlemi yaptım ama. outlook açtı tüm maillere gönder penceresi açtı ve bekkiyor. otom gönderme yapmadı tek tek gönder tuşuna basmam gerekli maalesef.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,266
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2024
Sayın excelse04
İlk sorunuz

Excel'de belirlenen konular hakkında sorumlu seçimi için isim listesi oluşturdum. Listeden seçmiş olduğum isme o konunun isim ve açıklama hücrelerini de mail olarak göndermek istiyorum. Böyle bir otomatize mümkün müdür?
ve tek yönlü ama cok kişiye mail gönderme olarak anlaşıldı ancak düzeltme mesajınızda giden ve geri gelen mail olması gerektiği anlaşılıyor.

Herşeyden önce bir resim değil hazırladığınız dosyayı bir dış yükleme ( burada altın üye olmadığınızdan ) sitesine yükleyip verilen linki burada mesajınıza ekleyerek dosyanın indirilmesini saglamanız ve dosya üzerinde çalışılmasına olanak vermeniz , excelde her hücrenin yerive koordinatları da önemli olduğundan kodlar buna göre yazılabilir. Yeni ve baştan çalışma üretmek zamanı olacak üyelerin yapabileceği şeydir ve çoğu üye bunu zamansızlıktan yapmayabilir, bir zorunluluk yok ve yönetim dahil eğer biliyorsa her üyeden gonullü destek kuralı vardır..

İkinci konu ise geri bildirim için bir excel attach ile gönderilmeli ve alan kişi kendi masaüstüne indirip açmalı yazmalı ve geriye yine attack ederek göndermesi gerekir zira mesela 5 kişi aynı gelen dosyaya işlem yaparak geri ( benim naciz bildigim kadarı ile ) gonderemez. Bunun yerine sanıyorum bir servera yuklenecek bir iş dosyasından cok kişinin bilgisayarına kısayol vererek kendi bilgisayarlarında ve ayrı anlarda dosyayı acması , save etmesi ve kapatarak diger kişinin engelleme gormeden kullanmasına terketmesi gerekir.

Bu yol dosya cogalması ve karışarak konuların dagılmasını engelleyebilir ve tek dosya duzeni kurulmus, mailleme sistemi de devre dısı kalmıs olur ki daha guvenli gorunen bir yol olabilir.

Bunlar naciz bilgim dahilinde kişisel cozum fikridir ancak cok daha iyi fikir ve oneriler de üyeler ya da yönetimden de gelebilir
 
Katılım
4 Nisan 2024
Mesajlar
8
Excel Vers. ve Dili
2016 TR
ayn



Merhaba aynı işlemi yaptım ama. outlook açtı tüm maillere gönder penceresi açtı ve bekkiyor. otom gönderme yapmadı tek tek gönder tuşuna basmam gerekli maalesef.
' E-posta gönder
With OutlookMail
.To = EmailAddress ' Alıcı e-posta adresi
.Subject = EmailSubject
.Body = EmailBody
.Display ' E-postayı göster
'.Send ' E-postayı otomatik göndermek için bu satırı kullanabilirsiniz
End With

Kırmızı ile işaretlediğim yerde kodu yazan arkadaşımız otomatik gönderim için açıklama yapmış. Otomatik mail gönderiimi için .Send ifadesinin solundaki tırnak işaretini silebilirsiniz.
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
178
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
' E-posta gönder
With OutlookMail
.To = EmailAddress ' Alıcı e-posta adresi
.Subject = EmailSubject
.Body = EmailBody
.Display ' E-postayı göster
'.Send ' E-postayı otomatik göndermek için bu satırı kullanabilirsiniz
End With

Kırmızı ile işaretlediğim yerde kodu yazan arkadaşımız otomatik gönderim için açıklama yapmış. Otomatik mail gönderiimi için .Send ifadesinin solundaki tırnak işaretini silebilirsiniz.
aslında varmış ben göremedim. şimdi çalıştı. sorun yok. teşekkürler.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,266
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2024
Sayın @gurbuzs

Sizde çalıştı ise sayın @excelse04 un dosyasında da çalışması gerek ancak sadece govdede yazılan metin gitse de geri dönüş ancak bir dosya açılıp işlenerek geri attach edilerek gonderilemsi ile geribildirim mumkun olabilir. Bu şekilde geribildirim oyle sanıyorumki tek bir dosyaya server uzerinden ayrı bilgisayarlardaki kısayol ikonu ile ulaşarak ( ayrı zamanlarda açmak şartı ile ) mümkün olabilir .

Sonuçta projede istenen göndermekten ziyade geribildirim , eğer doğru anlıyorsam ...
 
Katılım
4 Nisan 2024
Mesajlar
8
Excel Vers. ve Dili
2016 TR
Sayın excelse04
İlk sorunuz



ve tek yönlü ama cok kişiye mail gönderme olarak anlaşıldı ancak düzeltme mesajınızda giden ve geri gelen mail olması gerektiği anlaşılıyor.

Herşeyden önce bir resim değil hazırladığınız dosyayı bir dış yükleme ( burada altın üye olmadığınızdan ) sitesine yükleyip verilen linki burada mesajınıza ekleyerek dosyanın indirilmesini saglamanız ve dosya üzerinde çalışılmasına olanak vermeniz , excelde her hücrenin yerive koordinatları da önemli olduğundan kodlar buna göre yazılabilir. Yeni ve baştan çalışma üretmek zamanı olacak üyelerin yapabileceği şeydir ve çoğu üye bunu zamansızlıktan yapmayabilir, bir zorunluluk yok ve yönetim dahil eğer biliyorsa her üyeden gonullü destek kuralı vardır..

İkinci konu ise geri bildirim için bir excel attach ile gönderilmeli ve alan kişi kendi masaüstüne indirip açmalı yazmalı ve geriye yine attack ederek göndermesi gerekir zira mesela 5 kişi aynı gelen dosyaya işlem yaparak geri ( benim naciz bildigim kadarı ile ) gonderemez. Bunun yerine sanıyorum bir servera yuklenecek bir iş dosyasından cok kişinin bilgisayarına kısayol vererek kendi bilgisayarlarında ve ayrı anlarda dosyayı acması , save etmesi ve kapatarak diger kişinin engelleme gormeden kullanmasına terketmesi gerekir.

Bu yol dosya cogalması ve karışarak konuların dagılmasını engelleyebilir ve tek dosya duzeni kurulmus, mailleme sistemi de devre dısı kalmıs olur ki daha guvenli gorunen bir yol olabilir.

Bunlar naciz bilgim dahilinde kişisel cozum fikridir ancak cok daha iyi fikir ve oneriler de üyeler ya da yönetimden de gelebilir
Geri dönüşünüz için teşekkür ederim. Sadece 1 satır yani A iş tanımı için kod hazırlansa geri kalan iş tanımları için çok hakim olmasam da hazırlayabilirim. Ancak dediğiniz gibi gönüllük esasına dayalı bir forum.

Excel ekini mailde göndermeye gerek yok diye düşünüyorum. Server bilgisayar var ve her sorumlu aynı excel soyasına ulaşabilir ki eğer bir kullanıcı excel dosyasında işlem yapıyor ve bir başka kullanıcı excel dosyasını açmaya çalışırken "A kişisi dosya üzerinde çalışıyor" uyarısı vermektedir. Bu uyarıyı alan kişi excel dosyasını daha sonra düzenleyebilir.

Kodunuz aslında güzel çalışıyor konsept olarak uygun. Ancak Durum, Hedef Tarihi, Açıklama ve Sorumlu değişikliklerini mail olarak ilgili kişiye gönderme problemini çözemiyor.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,266
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2024
Sonuçta projede istenen göndermekten ziyade geribildirim , eğer doğru anlıyorsam ...
Bu da serverda tek dosyaya işlem ile geribildirim düzene girebilir sanıyorum. Ya da üstad ve usta üyelerden "ganntchard "oluşturma gibi farklı fikirler de gelebilir

Gannt chard oluşturmaya örnek

 
Son düzenleme:
Katılım
4 Nisan 2024
Mesajlar
8
Excel Vers. ve Dili
2016 TR
Bu da serverda tek dosyaya işlem ile geribildirim düzene girebilir sanıyorum. Ya da üstad ve usta üyelerden "ganntchard "oluşturma gibi farklı fikirler de gelebilir
Evet. Aslında gantt çizelgesinin sadeleştirilmiş versiyonunu oluşturmaya çalışıyorum.
Yönetici her bir sorumlunun dosya kaydetmesi ile mail bildirimi alacak ve değişiklikleri mailde görecek.
Tüm sorumlular ise sorumlu olduğu iş tanımı ona atandığında ve o iş tanımının hedef tarihi, durumu, ve açıklama bilgileri değişikliğinde mail bildirimi alacak.
 
Üst