saat koşullu otomatik mail

onurbeyaz

Altın Üye
Katılım
12 Ekim 2019
Mesajlar
57
Excel Vers. ve Dili
excel2010
Altın Üyelik Bitiş Tarihi
25-06-2029
Merhaba Öncelikle bu şekilde işlemleri akıl edip insanların yararına sunulduğu için teşekkür ederim, bu mantıkla şunu yapılması mümkün mü acaba? bu makro saatli yapılıyor ama ben istiyorum ki satır bazlı koşula bağlı gönderim yapsa mesela fatura listesi var fatura listesinin yan sutununa girildi yazdığımda bu girildi bilgisini belirttiğim maildeki kişilere ..... nolu fatura kayıtlara alınmıştır bilgisini otomatik mail atsa olur mu satır bazlı? şimdiden çok teşekkür ederim
 

bmutlu966

Altın Üye
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Sanırım böyle bir şey istiyorsunuz. Deneyin. F kolonundan Girildiyi seçtiğinizde maili gösterir. Göndermesini istiyorsanız. .Display satırını .send olarak değiştirin.
 

Ekli dosyalar

onurbeyaz

Altın Üye
Katılım
12 Ekim 2019
Mesajlar
57
Excel Vers. ve Dili
excel2010
Altın Üyelik Bitiş Tarihi
25-06-2029
G
Sanırım böyle bir şey istiyorsunuz. Deneyin. F kolonundan Girildiyi seçtiğinizde maili gösterir. Göndermesini istiyorsanız. .Display satırını .send olarak değiştirin.

yani ben leb dedim sen leblebiyi fazlasıyla tamamladın üstad çok teşekkür ederim Allah razı olsun:)
 

bmutlu966

Altın Üye
Katılım
26 Ocak 2006
Mesajlar
756
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Rica ederim. İşinize yaradığına sevindim.
 

onurbeyaz

Altın Üye
Katılım
12 Ekim 2019
Mesajlar
57
Excel Vers. ve Dili
excel2010
Altın Üyelik Bitiş Tarihi
25-06-2029
Rica ederim. İşinize yaradığına sevindim.
Kurumsal bir firmada çalışıyorum bu tür işlemler süreklilik arz eden konularda çok işime yaramaktadır, tekrar teşekkür ederim, saat koşullu gönderilen otomatik mailde çok işime yaradı geliştirilmesi ve fikir amaçlı acaba o gönderilen sütunlardaki kısma Excel dosya ekide ekleme gibi bir işlem yapılabilir mi? Dosya yolunu eklesek acaba?
 

erdalyeter

Altın Üye
Katılım
17 Nisan 2013
Mesajlar
23
Excel Vers. ve Dili
tr
Altın Üyelik Bitiş Tarihi
04-08-2025
Merhaba burada yer alan excel kodları 2016 da çalışmıyor destek olmanız mümkün mü teşekkür ederim
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
305
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Kontrol edip sonucu paylaşır mısınız.

Excel 2016'da VBA ile e-posta gönderme işlemi yaparken "takılıp kalma" veya gönderim sorunları yaşanabiliyor. Bu tür sorunların birkaç nedeni olabilir. Aşağıda, yaşadığınız sorunu gidermek için bazı öneriler ve kontrol etmeniz gereken noktalar sıralanmıştır:

1. Outlook Uygulamasının Durumu
  • Açık ve Etkin Olması: E-posta gönderimi için Outlook uygulamanızın açık ve etkin olması gerekir. Makro çalıştığında Outlook kapalıysa veya yanıt vermiyorsa, gönderim işlemi başarısız olur.
  • Hata Mesajları: Outlook'un herhangi bir güvenlik veya izin istemi açıp açmadığını kontrol edin. Bu tür pencereler, VBA kodunun çalışmasını engelleyebilir.
2. Makro Güvenlik Ayarları
  • Makro İzinleri: Excel'de, "Geliştirici" sekmesine gidin ve "Makro Güvenliği" altında makroların çalışmasına izin verildiğinden emin olun. "Tüm makrolara izin ver" seçeneğini kullanmak, gönderim sorunlarını azaltabilir.
3. Hata Yönetimi ve Geri Bildirim
  • Hata Yakalama: Makro çalıştığında bir hata alıyorsanız, yukarıda önerdiğim gibi hata yakalama ve geri bildirim ekleyin. Bu, sorunun ne olduğunu anlamanıza yardımcı olabilir.
4. E-posta Ayarları
  • E-posta Alıcıları: E-posta alıcılarının ve diğer bilgilerin doğru olduğundan emin olun. Yanlış bir e-posta adresi veya geçersiz bir bilgi gönderimi engelleyebilir.
  • Outlook Profil Ayarları: Eğer birden fazla Outlook profili kullanıyorsanız, doğru profilin aktif olduğundan emin olun.
5. Kodun Güncellenmesi
Kodda bazı düzenlemeler yaparak, daha sağlam bir yapı elde edebiliriz. Örneğin, aşağıda güncellenmiş bir versiyon verilmiştir:


Kod:
Sub Mail()
    Dim Sayfa As Worksheet
    Dim Alan As Range
    Dim daralan As Range
    Dim saydir As Long
    Dim DinamikAlan As String
    
    ' E-posta adresinin dolu olup olmadığını kontrol et
    If Cells(2, 2) = "" Then
        MsgBox "E-posta adresi boş. Lütfen hücreyi doldurun."
        Exit Sub
    End If
    
    On Error GoTo HATA
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    saydir = WorksheetFunction.CountIf(Range("D:D"), "<>") + 1
    DinamikAlan = "D2:G" & saydir
    Set Alan = Worksheets("Sayfa1").Range(DinamikAlan)
    
    Set Sayfa = ActiveSheet
    
    With Alan
        .Parent.Select
        Set daralan = ActiveCell

        .Select
        ActiveWorkbook.EnvelopeVisible = True
        With .Parent.MailEnvelope
            .Introduction = "Otomatik Mail. BYMMB.COM tarafından tasarlanmıştır."
            With .Item
                .To = Cells(2, 2)
                .CC = Cells(3, 2)
                .Subject = Cells(1, 2)
                .BCC = "admin@bymmb.com"
                .Send ' Mail gönderimi
            End With
        End With

        daralan.Select
    End With
    
    Sayfa.Select

HATA:
    If Err.Number <> 0 Then
        MsgBox "Hata oluştu: " & Err.Description
    End If

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub
Ek Kontroller
  • Outlook Ayarları: Outlook'un e-posta sunucusu ayarlarını kontrol edin. Gönderim ile ilgili bir sorun yoksa, SMTP ayarlarını kontrol edebilirsiniz.
  • Firewall ve Antivirus: Güvenlik duvarı veya antivirus yazılımının e-posta gönderimlerini engelleyip engellemediğini kontrol edin.
 

erdalyeter

Altın Üye
Katılım
17 Nisan 2013
Mesajlar
23
Excel Vers. ve Dili
tr
Altın Üyelik Bitiş Tarihi
04-08-2025
böyle hata verdi hocam sizin kodları yapıştırdığımda

254090
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
305
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Olası Nedenler
  1. Geçersiz E-posta Adresi: Cells(2, 2) hücresindeki e-posta adresinin geçerli ve doğru bir formatta olup olmadığını kontrol edin. E-posta adresinin boş olmaması ve doğru bir biçimde yazılması gerekir (örneğin: example@example.com).
  2. Outlook Yapılandırması: Outlook'un e-posta istemcisi olarak doğru bir şekilde yapılandırıldığından emin olun. Eğer birden fazla profil varsa, doğru profilin aktif olduğuna dikkat edin.
  3. Hücrelerin Formatı: E-posta adresinin bulunduğu hücrede (örneğin, B2 hücresinde) herhangi bir gereksiz boşluk veya özel karakter olmadığından emin olun. Bunu yapmak için hücredeki boşlukları temizleyebilirsiniz:
    • B2 hücresini seçin ve F2 tuşuna basarak düzenleme moduna geçin, ardından Enter tuşuna basarak onaylayın.
    • Ayrıca, hücreyi seçip "Boşlukları Kaldır" (Trim) fonksiyonunu kullanabilirsiniz:
      vba
      Kodu kopyala
      Cells(2, 2).Value = Trim(Cells(2, 2).Value)
  4. Kullanıcı İzinleri: Outlook'un, VBA kodları aracılığıyla e-posta göndermesine izin verdiğinden emin olun. Eğer Outlook, e-posta gönderiminde bir güvenlik uyarısı çıkartıyorsa, bu uyarıyı geçmek için bir eklenti veya ayar yapılması gerekebilir.
Çözüm Önerileri
Aşağıda, yukarıdaki noktaları kontrol edip düzelttikten sonra kodunuza ekleyebileceğiniz birkaç değişiklik bulunmaktadır:

Kod:
Sub Mail()
    Dim Sayfa As Worksheet
    Dim Alan As Range
    Dim daralan As Range
    Dim saydir As Long
    Dim DinamikAlan As String
    Dim emailTo As String
    
    ' E-posta adresini al ve kontrol et
    emailTo = Trim(Cells(2, 2).Value)
    
    If emailTo = "" Then
        MsgBox "E-posta adresi boş. Lütfen hücreyi doldurun."
        Exit Sub
    End If
    
    ' E-posta adresinin geçerli formatta olup olmadığını kontrol et
    If InStr(1, emailTo, "@") = 0 Or InStrRev(emailTo, ".") < InStr(1, emailTo, "@") Then
        MsgBox "Geçersiz e-posta adresi. Lütfen geçerli bir adres girin."
        Exit Sub
    End If

    On Error GoTo HATA
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    saydir = WorksheetFunction.CountIf(Range("D:D"), "<>") + 1
    DinamikAlan = "D2:G" & saydir
    Set Alan = Worksheets("Sayfa1").Range(DinamikAlan)
    
    Set Sayfa = ActiveSheet
    
    With Alan
        .Parent.Select
        Set daralan = ActiveCell

        .Select
        ActiveWorkbook.EnvelopeVisible = True
        With .Parent.MailEnvelope
            .Introduction = "Otomatik Mail. BYMMB.COM tarafından tasarlanmıştır."
            With .Item
                .To = emailTo
                .CC = Cells(3, 2).Value
                .Subject = Cells(1, 2).Value
                .BCC = "admin@bymmb.com"
                .Send ' Mail gönderimi
            End With
        End With

        daralan.Select
    End With
    
    Sayfa.Select

HATA:
    If Err.Number <> 0 Then
        MsgBox "Hata oluştu: " & Err.Description
    End If

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub
Kontrol Listesi
  • E-posta adresinin formatı: E-posta adresinin doğru formatta olduğunu kontrol edin.
  • Hücre içeriği: Hücrede görünmeyen karakterler veya boşluk olmadığından emin olun.
  • Outlook uygulaması: Outlook uygulamanızın düzgün çalıştığını kontrol edin ve makronun çalışabilmesi için açık olduğuna emin olun.
Bu değişikliklerle birlikte e-posta gönderme işleminin düzgün çalışması gerekir.
 

erdalyeter

Altın Üye
Katılım
17 Nisan 2013
Mesajlar
23
Excel Vers. ve Dili
tr
Altın Üyelik Bitiş Tarihi
04-08-2025
mailleri düzelttim , mail adresinde makrolarada izin verdim , aynı excel ile normal masa üzerinde işlem yapıyor, ama uzak masaüstünde bu hatayı veriyor

254092
 

erdalyeter

Altın Üye
Katılım
17 Nisan 2013
Mesajlar
23
Excel Vers. ve Dili
tr
Altın Üyelik Bitiş Tarihi
04-08-2025
ayrıca sizin kodlar böyle hata veriyor

254093
 
Üst