Makro ile otomatik ...
 
Bildirimler
Hepsini Temizle

Makro ile otomatik mail gönderme  

  RSS
uğur karaman
(@ugurkaraman)
Üye

Sub Auto_Open()

Application.OnTime TimeValue("09:39:00"), "Mail_Gonderimi"
   
End Sub

Sub Mail_Gonderimi()

Dim Outapp As Object
Dim Outmail As Object

Set Outapp = CreateObject("Outlook.Application")
Set Outmail = Outapp.CreateItem(0)

With Outmail
    .To = ""
    .CC = ""
    .BCC = ""
    .Subject = "Deneme"
    .Body = "Merhaba Ümit Bey," & Chr(13) & _
        "Günlük Rapor Ektedir." & Chr(13) & _
        "Bilginize Sunarım." & Chr(13) & _
        "Saygılarımla."
        .Send
       
End With

Set Outmall = Nothing
Set Outapp = Nothing

End Sub

Ya da kalın altı çizili kısma tarih ekleme istiyorum ama saatin yanına tarih yazınca hata veriyor acaba ne yazmam gerekiyor.

Alıntı
Gönderildi : 02/01/2014 15:16
 Anonim

[b]Uğur Bey[/b] burada bahsettigim şekilde yaparsanız istediginiz olacaktır; http://www.cozumpark.com/forums/thread/411619.aspx

CevapAlıntı
Gönderildi : 03/01/2014 03:44
uğur karaman
(@ugurkaraman)
Üye

Murat Bey, forumu karıştırırken en çok rastladığım isimlerden birisiniz sorulara cevap vermedeki hassasiyetinizden dolayı öncelikle teşekkür ederim.

Birkaç sorum daha olacak murat bey yardımcı olursanız sevinirim.

 *  Makroyu çalıştırdığımda belirtilen saat geldiğinde maili göndermek için benden onay istiyor ben bu onayın olmasını istemiyorum direk göndersin istiyorum. Bunun için ne yapabiliriz acaba?

*  Bir de exceli açtığımda belirttiğim saat olmamasına rağmen tekrar yukarıda belirttiğim onayı aldıktan sonra excel açılıyor ve tekrar mail gönderiyor. Neden kaynaklanıyor acaba? Yazdığım kod aşağıdaki şekilde

Sub Auto_Open()

Application.OnTime DateValue("02.01.2014") + TimeValue("10:36:00"), "Mail_Gonderimi"
   
End Sub

Sub Mail_Gonderimi()

Dim Outapp As Object
Dim Outmail As Object

Set Outapp = CreateObject("Outlook.Application")
Set Outmail = Outapp.CreateItem(0)

With Outmail
    .To = "dljfklsd@lşllklşkdfl.com"
    .CC = "sdfşklskşd@dlşkflfdskdfl.com"
    .BCC = ""
    .Subject = "Deneme"
    .Body = "Merhaba Dlsdfl Hanım," & Chr(13) & _
        "proje çalışmasının bitimine 19 gün kalmıştır." & Chr(13) & _
        "Bilginize Sunarım." & Chr(13) & _
        "Saygılarımla."
        .Send
       
End With

Set Outmall = Nothing
Set Outapp = Nothing

End Sub

Yardımlarınız için şimdiden teşekkür ederim.                 

CevapAlıntı
Gönderildi : 04/01/2014 00:28
 Anonim

[quote user="uğur karaman"]
Murat Bey, forumu karıştırırken en çok rastladığım isimlerden birisiniz sorulara cevap vermedeki hassasiyetinizden dolayı öncelikle teşekkür ederim.

Birkaç sorum daha olacak murat bey yardımcı olursanız sevinirim.

* Makroyu çalıştırdığımda belirtilen saat geldiğinde maili göndermek için benden onay istiyor ben bu onayın olmasını istemiyorum direk göndersin istiyorum. Bunun için ne yapabiliriz acaba?

* Bir de exceli açtığımda belirttiğim saat olmamasına rağmen tekrar yukarıda belirttiğim onayı aldıktan sonra excel açılıyor ve tekrar mail gönderiyor. Neden kaynaklanıyor acaba? Yazdığım kod aşağıdaki şekilde;

Yardımlarınız için şimdiden teşekkür ederim. 

[/quote]
Merhaba Uğur Bey

Bir faydam dokunuyorsa ne mutlu bana. [evet]

 

Sorunuzla ilgili olarak; sorgusuz mail göndermek için API'lere ihtiyacınız olacak.
İşletim sisteminiz 32-bit ise; kodlarınızın en üstüne bu ShellExecute API'sini ekleyin;

Private Declare Function ShellExecute Lib "shell32.dll" _
Alias 
"ShellExecuteA" (ByVal hwnd As LongByVal lpOperation As String_
ByVal lpFile 
As StringByVal lpParameters As StringByVal lpDirectory As String_
ByVal nShowCmd 
As Long) As Long

İşletim sisteminiz 64-bit ise; kodlarınızın en üstüne bu ShellExecute API'sini ekleyin;

Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" _
Alias 
"ShellExecuteA" (ByVal hwnd As LongPtrByVal lpOperation As String_
ByVal lpFile 
As StringByVal lpParameters As StringByVal lpDirectory As String_
ByVal nShowCmd 
As Long) As LongPtr

Ya da bu kodları yine kodların en üst satırında kullanarak bırakın bu kadarı bilgisayarınız versin;

#If VBA7 And Win64 Then
    
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" _
    Alias 
"ShellExecuteA" (ByVal hwnd As LongPtrByVal lpOperation As String_
    ByVal lpFile 
As StringByVal lpParameters As StringByVal lpDirectory As String_
    ByVal nShowCmd 
As Long) As LongPtr
#Else
    
Private Declare Function ShellExecute Lib "shell32.dll" _
    Alias 
"ShellExecuteA" (ByVal hwnd As LongByVal lpOperation As String_
    ByVal lpFile 
As StringByVal lpParameters As StringByVal lpDirectory As String_
    ByVal nShowCmd 
As Long) As Long
#End If
 
Göndermek için de kodlarınızdaki .Send satırı yerine şu kodları yazın;

ShellExecute 0&, vbNullStringURLvbNullStringvbNullStringvbNormalFocus
Application
.Wait (Now TimeValue("0:00:02"))
Application.SendKeys "%s"  

Şimdi sizden onay istemeden mail gönderiyor olması gerek. 

Diğer sorunuzla ilgili olarak bir Excel Destek Forumundan gerekli desteği almışsınız zaten. 

Hoşça kalın --)(

CevapAlıntı
Gönderildi : 06/01/2014 15:04
yakup uğur
(@yakupugur)
Üye

Selamlar,

Mutabakat formu hazırlamaya çalışıyorum.  Excel sayfamın sol tarafında veri listem(500 satır) ve sağ tarafda ise formum var.   her satır için form oluşturmak yani pdf dosyası hazırlamak ve bunları listemin yanında bulunan mail adreslerine göndermek istiyorum. Yardımcı olacak arkadaşlara şimdiden teşekkürler. Ben sadece ilk satır için pdf oluşturabildim.

Sub pdf()

Range("g15:j15").Value = Range("a5:d5").Value

Range("G1:M58").Select

    ActiveSheet.PageSetup.PrintArea = "$G$1:$M$58"

If Sheets("Sayfa1").Range("b5") = "" Then

MsgBox "b5 hücresi boş!"

Else

Sheets("Sayfa1").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Users\ugurya\Desktop\" & Sheets("Sayfa1").Range("b5") & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

End If

End Sub

CevapAlıntı
Gönderildi : 26/04/2015 22:18
Paylaş: