• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Otomatik mail

Katılım
10 Nisan 2014
Mesajlar
113
Excel Vers. ve Dili
2013 ingilizce
Merhaba arkadaşlar,

Eklediğim dosyadakine benzer biçimde bir takip listesi oluşturdum. Bu takip listesinde her bir satır yapılacak bir işi temsil ediyor. Her satırdaki iş ile ilgili E hücresinde işin tamamlanması için tanımlı son tarih yazıyor ve H hücresinde ilgili kişinin mail adresi yer alıyor. Benim istediğim, işin son tamamlanma tarihinden 5 gün ve 2 gün önce ilgili kişiye mail atarak hatırlatma yapması. Ancak bunu yaparken o iş ile ilgili F hücresi kontrol edilmeli, hücre boş veya devam ediyor ibraesi varsa bu maili atmalı. Mail atarken 2 no.lu başlık satırı ve altında ilgili satır yer alsın istiyorum. Bunu yapabilecek bir kod yazılabilir mi? Yardımcı olursanız gerçekten işim kolaylaşacak. Çok teşekkür ederim.

Not: Mail programı olarak outlook kullanıyorum
 

Ekli dosyalar

Merhaba
Bir kaç soru sorayım ona göre yazayım kodu :
Şimdi bu dosya her gün açılacak doğru mu ?
Mail olarak excel dosyası mı atılacak ?
Mail olarak hangi bilgilerin gitmesini istiyorsunuz ?
Mail'e dosya değil de belli bir bilginin yazılmasını mı istiyorsunuz ?
 
Merhaba
Bir kaç soru sorayım ona göre yazayım kodu :
Şimdi bu dosya her gün açılacak doğru mu ?
Mail olarak excel dosyası mı atılacak ?
Mail olarak hangi bilgilerin gitmesini istiyorsunuz ?
Mail'e dosya değil de belli bir bilginin yazılmasını mı istiyorsunuz ?

Merhaba,

Dosya hergün açılmıyor. Dolayısıyla dosya açılmasa da otomatik gönderir mi?
Mail içeriğinde Standart bir metin ve tırnak içerisinde belirttiklerim tabloya göre değişken olacak şekilde;
----------------------------------------------------------
Merhaba "B hücresindeki ilgili"

Tarafınızdan yürütülmekte olan "F hücresinde ki konu" için tamamlamanız gereken son tarih "E hücresindeki tarih"'dir. Bu sebeple çalışmanızın son durumunu kontrol edin lütfen.

İyi çalışmalar,
Hakan ÜNAL
-----------------------------------------------------------
Şeklinde bir mail atılabilir mi?

Excel listesi dinamik bir alana sahip olmalı yani yeni görev ilaveleri yer alacak. Ve görevler Beklemeye alındığında yada tamamlandığında bu bilgiyi F hücresinden alabilir Mail atmayacak

İlgilendiğiniz için çok teşekkür ederim
 
Merhaba
Dosya açık olmalı.
Ben şimdilik deneme yaparsınız diye kodu module uygun şekilde düzenledim.
Kod:
Option Explicit
Dim Outlook_App As Object
Dim Outlook_Mail As Object
Sub mail()
Dim STR As Long
Set Outlook_App = CreateObject("Outlook.Application")
Set Outlook_Mail = Outlook_App.CreateItem(0)
For STR = 3 To Range("B" & Rows.Count).End(xlUp).Row
If Date + 2 = Cells(STR, "E") Or Date + 5 = Cells(STR, "E") Then
If Cells(STR, "F") <> "Tamamlandı" Then
With Outlook_Mail
.to = Cells(STR, "H")
.CC = ""
.BCC = ""
.Subject = "" 'Konu Belirtebilirsiniz
.Body = "Merhaba " & Cells(STR, "B") & vbCrLf & "" & vbCrLf & _
"Tarafınızdan yürülmekte olan " & Cells(STR, "C") & " için tamamlamanız gereken son tarih " & Format(Cells(STR, "E"), "dd.mm.yyyy") & "dir." & _
"Bu sebeple çalışmanızın son durumunu kontrol edin lütfen. " & vbCrLf & vbCrLf & _
"İyi Çalışmalar" & vbCrLf & _
"HAKAN ÜNAL"
.Save
.Send
End With
Next
End Sub

Otomatik çalışsın isterseniz.
Kod:
Option Explicit
Dim Outlook_App As Object
Dim Outlook_Mail As Object
Sub auto_open()
Dim STR As Long
Set Outlook_App = CreateObject("Outlook.Application")
Set Outlook_Mail = Outlook_App.CreateItem(0)
For STR = 3 To Range("B" & Rows.Count).End(xlUp).Row
If Date + 2 = Cells(STR, "E") Or Date + 5 = Cells(STR, "E") Then
If Cells(STR, "F") <> "Tamamlandı" Then
With Outlook_Mail
.to = Cells(STR, "H")
.CC = ""
.BCC = ""
.Subject = "" 'Konu Belirtebilirsiniz
.Body = "Merhaba " & Cells(STR, "B") & vbCrLf & "" & vbCrLf & _
"Tarafınızdan yürülmekte olan " & Cells(STR, "C") & " için tamamlamanız gereken son tarih " & Format(Cells(STR, "E"), "dd.mm.yyyy") & "dir." & _
"Bu sebeple çalışmanızın son durumunu kontrol edin lütfen. " & vbCrLf & vbCrLf & _
"İyi Çalışmalar" & vbCrLf & _
"HAKAN ÜNAL"
.Save
.Send
End With
Next
End Sub

Bu kodu module yapıştırın. dosyanızı kaydedip kapatıp tekrar açtığınızda gerekli işlemi yapacaktır.

Not : Kod B sütunundaki doluluk oranına göre çalışır. Ayrıca F sütunünda Tamamlandı yazısının dışında her şeyde çalışacaktır.
 
Çok teşekkür ederim deneyip geri döneceğim. Son olarak sormak istediğim birşey var. Örneğin görevin tamamlanmasına 2 gün kaldı Dosyayı açtık ve ilgililere mail attı. Sonra dosyayı kapattık ve aynı gün yeniden açtık Tekrar mı mail atar? Ahmet isimli kişiye görevinizin tamamlanmasına 2 gün kaldı diye bir mail attığında aynı maili bir daha göndermesin istiyorum. Zahmet olmazsa ve mümkünse kodu bu doğrultuda düzenleyebilirmisiniz?
 
Çok teşekkür ederim deneyip geri döneceğim. Son olarak sormak istediğim birşey var. Örneğin görevin tamamlanmasına 2 gün kaldı Dosyayı açtık ve ilgililere mail attı. Sonra dosyayı kapattık ve aynı gün yeniden açtık Tekrar mı mail atar? Ahmet isimli kişiye görevinizin tamamlanmasına 2 gün kaldı diye bir mail attığında aynı maili bir daha göndermesin istiyorum. Zahmet olmazsa ve mümkünse kodu bu doğrultuda düzenleyebilirmisiniz?

Evet bu şekilde yapar dosya açıldığında otomatik tetikleme olduğu için tekrar atar. Engellemenin yolu da mevcut satırın yanına işaret koydurup kaydedersiniz böylece gönderdiğine tekrar göndermemiş olur.
 
MErhaba,

Kodu denedim.(Otomatik olanı) "Next without For" diye bir hata verdi. Ekran görünütüsünü ekledim
 

Ekli dosyalar

  • Hata.jpg
    Hata.jpg
    267.7 KB · Görüntüleme: 5
MErhaba,

Kodu denedim.(Otomatik olanı) "Next without For" diye bir hata verdi. Ekran görünütüsünü ekledim

Kusura bakmayın IF leri kapatmayı unutmuşum :)
Kodu bununla değiştirip dener misiniz ?
Kod:
Option Explicit
Dim Outlook_App As Object
Dim Outlook_Mail As Object
Sub auto_open()
Dim STR As Long
Set Outlook_App = CreateObject("Outlook.Application")
Set Outlook_Mail = Outlook_App.CreateItem(0)
For STR = 3 To Range("B" & Rows.Count).End(xlUp).Row
If Date + 2 = Cells(STR, "E") Or Date + 5 = Cells(STR, "E") Then
If Cells(STR, "F") <> "Tamamlandı" Then
With Outlook_Mail
.to = Cells(STR, "H")
.CC = ""
.BCC = ""
.Subject = "" 'Konu Belirtebilirsiniz
.Body = "Merhaba " & Cells(STR, "B") & vbCrLf & "" & vbCrLf & _
"Tarafınızdan yürülmekte olan " & Cells(STR, "C") & " için tamamlamanız gereken son tarih " & Format(Cells(STR, "E"), "dd.mm.yyyy") & "dir." & _
"Bu sebeple çalışmanızın son durumunu kontrol edin lütfen. " & vbCrLf & vbCrLf & _
"İyi Çalışmalar" & vbCrLf & _
"HAKAN ÜNAL"
.Save
.Send
End With
End If: End If:
Next
End Sub
 
Evet bu şekilde yapar dosya açıldığında otomatik tetikleme olduğu için tekrar atar. Engellemenin yolu da mevcut satırın yanına işaret koydurup kaydedersiniz böylece gönderdiğine tekrar göndermemiş olur.

Sizi de yorum ancak makro konusunda fazla bilgi sahibi değilim, yardımınız için minnettarım.

Mesela 2 gün kala Mail attığında I kolonundaki ilgili hücreye "gönderildi", 5 gün kala mail attığında J kolonundaki ilgili hücreye "gönderildi" ibaresi koyulursa ve makro da bu kontrolleri yaparak mail atarsa sizin dediğiniz gibi sorun çözülmüş olur sanırım. Rica etsem koda ekleyebilir misiniz.

Bir de excel sayfasını açtığımda otomatik gönderim yapmıyor. Ancak makroyu manuel çalıştırınca gönderiyor ve sonunda da "The item has been moved or deleted" uyarısı çıkıyor. Uyarı görüntüsünü ekledim. Sebebi Outlook virüs ayarlarından olabilir mi?
 

Ekli dosyalar

  • Hata.jpg
    Hata.jpg
    215.9 KB · Görüntüleme: 7
Sizi de yorum ancak makro konusunda fazla bilgi sahibi değilim, yardımınız için minnettarım.

Mesela 2 gün kala Mail attığında I kolonundaki ilgili hücreye "gönderildi", 5 gün kala mail attığında J kolonundaki ilgili hücreye "gönderildi" ibaresi koyulursa ve makro da bu kontrolleri yaparak mail atarsa sizin dediğiniz gibi sorun çözülmüş olur sanırım. Rica etsem koda ekleyebilir misiniz.

Bir de excel sayfasını açtığımda otomatik gönderim yapmıyor. Ancak makroyu manuel çalıştırınca gönderiyor ve sonunda da "The item has been moved or deleted" uyarısı çıkıyor. Uyarı görüntüsünü ekledim. Sebebi Outlook virüs ayarlarından olabilir mi?

Merhaba
Bende çalışıyor. Kodu bununla değiştirip dener misiniz ?
Kod:
Option Explicit
Dim Outlook_App As Object
Dim Outlook_Mail As Object
Sub auto_open()
Dim STR As Long
For STR = 3 To Range("B" & Rows.Count).End(xlUp).Row
Set Outlook_App = CreateObject("Outlook.Application")
Set Outlook_Mail = Outlook_App.CreateItem(0)
If Date + 2 = Cells(STR, "E") Or Date + 5 = Cells(STR, "E") Then
If Cells(STR, "F") <> "Tamamlandı" Then
If Cells(STR, "I") <> "Gönderildi" Then
With Outlook_Mail
.To = Cells(STR, "H")
.CC = ""
.BCC = ""
.Subject = "" 'Konu Belirtebilirsiniz
.Body = "Merhaba " & Cells(STR, "B") & vbCrLf & "" & vbCrLf & _
"Tarafınızdan yürülmekte olan " & Cells(STR, "C") & " için tamamlamanız gereken son tarih " & Format(Cells(STR, "E"), "dd.mm.yyyy") & " dir." & _
"Bu sebeple çalışmanızın son durumunu kontrol edin lütfen. " & vbCrLf & vbCrLf & _
"İyi Çalışmalar" & vbCrLf & _
"HAKAN ÜNAL"
.Save
.Send
If Date + 5 = Cells(STR, "E") Then
Cells(STR, "I") = "Gön"
Else
Cells(STR, "I") = "Gönderildi"
End If
End With
End If: End If: End If
Next
End Sub

O kadar deneme yaptım ki hala mail atıyor bana sistem :)
 
Evet çalışıyor. Son bir düzeltme daha rica edeceğim. Görevin tamamlanmasına 5 gün kalan bir görevi mail attıktan sonra Gönderildi ibaresi işleniyor. Ancak bu görev için süre geçip bitişe 2 gün kaldığında Gönderildi ibaresi olduğu için mail atmıyor. Benim amacım 5 gün kala atsın I'ya gönderildi yazsın ve artık aynı gün 5 gün kala uyarı maili atmasın. Ancak 2 gün kala mail atacağı zaman 2 gün kala uyarı mailinin kontrolünü ayrı bir hücreden yapmalı. Sizin kodunuzda 5 gün kala mailinin yazdığı gönderildi ibaresini kontrol ediyor. Dolayısıyla 5 gün kala mail atıldıysa 2 gün kala mail atmıyor.

Biraz karıştırdım yazarken kusura bakmayın:)
 
Evet çalışıyor. Son bir düzeltme daha rica edeceğim. Görevin tamamlanmasına 5 gün kalan bir görevi mail attıktan sonra Gönderildi ibaresi işleniyor. Ancak bu görev için süre geçip bitişe 2 gün kaldığında Gönderildi ibaresi olduğu için mail atmıyor. Benim amacım 5 gün kala atsın I'ya gönderildi yazsın ve artık aynı gün 5 gün kala uyarı maili atmasın. Ancak 2 gün kala mail atacağı zaman 2 gün kala uyarı mailinin kontrolünü ayrı bir hücreden yapmalı. Sizin kodunuzda 5 gün kala mailinin yazdığı gönderildi ibaresini kontrol ediyor. Dolayısıyla 5 gün kala mail atıldıysa 2 gün kala mail atmıyor.

Biraz karıştırdım yazarken kusura bakmayın:)

Ben öyle yaptım zaten siz ona göre deneyin.
Tek satırda yazıyor 5 gün kala "Gön" yazıyor 2 gün kala "Gönderildi " yazıyor.
I satırında yeni kayıt yaparsanız o satıra silin yoksa silmeyin oradaki bilgileri.
Yok illa ben 2 satırda takip edeyim diyorsanız ona göre düzenliyim.
 
Bende üzerinde çalıştım denedim oldu 2 hücrede gönderildiği yazıyor:))
Size ne kadar teşekkür etsem azdır. Allah gönlünüze göre versin. Teşekkür ederim:)
 
Geri
Üst