• 16-04-2023, 20:51:50
    #1
    Başlıkta da belirtiğim gibi bir excel çalışma dosyam var, üzerinde birkaç formül ve makro çalışıyor.
    Belirli bir hücreye göre E-Posta sheetindeki mail adreslerine ve konusun göre mail gönderimi yapmak istiyorum. Bunu nasıl yapabilirim?

    Örneğin;
    Test excel dosyamda Liste sheetindeki KONTROL ve KESİNLEŞTİRME TARİHİ alanları dolu ise Liste sheetinde yeşil renge boyadığım alanları E-Posta sheetindeki mail adreslerine ve mail konusu ile mail gönderecek. Daha sonra mail gönderdiği alanları farklı bir excel dosyasında (GÖNDERİLENLER) yazacak.

    Örnek Dosya
  • 16-04-2023, 21:09:11
    #2
    Excel bilmiyorum, ama nasıl olacağı konusunda fikir ve Araştırma söyleyim, belki yardımı olur.
    Hatırladığım makro kod içerisine gömüp, filtrelemeyle gönderilebilir.
    ----------------
    Chatbota sorunuzu yazdım, siz de ayrı aratın tabi, cevabı şöyle oldu;
    Excel'de belirli bir hücreye göre e-posta göndermeniz için bir örnek oluşturacağım. Bu örnekte, VBA (Visual Basic for Applications) kullanarak, `E-Posta` sheetindeki mail adreslerine ve belirli bir konuyla e-posta gönderimi yapacağız.

    Öncelikle, Excel'de Visual Basic for Applications (VBA) kodu yazmanız gerekecektir. Bunun için, Excel'de aşağıdaki adımları takip edin:

    1. Excel'de `E-Posta` adında bir çalışma sayfası oluşturun ve A1 hücresine "E-Posta Adresi" yazarak başlayın.
    2. A2 hücresinden başlayarak, e-posta göndermek istediğiniz mail adreslerini sıralayın.
    3. Excel'in üst köşesinde, `Developer` sekmesini tıklamanız gerekir. Eğer bu sekme görünmüyor ise, dosya sekmesini açıp, `Excel Seçenekleri` > `Özelleştir Bant` > `Geliştirici` seçeneğini işaretleyin.
    4. `Developer` sekmesini açtıktan sonra, `Visual Basic` düğmesini tıklayın.
    5. Açılan pencerede, `Insert` menüsünden `Module` seçeneğini tıklayarak bir modül ekleyin.
    6. Aşağıdaki VBA kodunu yeni oluşturulan modülün içine yapıştırın:

    ```vba
    Sub EmailGonder()

    Dim OutlookApp As Object
    Dim OutlookMail As Object
    Dim MailSheet As Worksheet
    Dim MailAdresi As String
    Dim Satir As Integer
    Dim Konu As String

    ' Konuyu belirleyin
    Konu = "E-posta Konusu Buraya"

    ' E-Posta sheetindeki mail adreslerini kullanarak e-posta gönderin
    Set MailSheet = ThisWorkbook.Sheets("E-Posta")
    Satir = 2

    ' Outlook nesnelerini oluşturun
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookApp.CreateItem(0)

    ' Her e-posta adresi için döngü
    Do While MailSheet.Cells(Satir, 1).Value <> ""

    MailAdresi = MailSheet.Cells(Satir, 1).Value

    With OutlookMail
    .To = MailAdresi
    .Subject = Konu
    .Body = "E-posta metni buraya."
    .Send
    End With

    Satir = Satir + 1

    Loop

    ' Outlook nesnelerini temizle
    Set OutlookMail = Nothing
    Set OutlookApp = Nothing

    End Sub
    ```

    Bu kod, `E-Posta` sheetindeki mail adreslerine belirli bir konu ve e-posta metni ile e-postalar gönderecektir. Konu ve e-posta metnini VBA kodundaki ilgili satırları değiştirerek istediğiniz gibi düzenleyebilirsiniz.

    7. Kodu düzenledikten sonra, `Ctrl` + `S` tuşlarına basarak çalışma kitabını kaydedin ve ardından Visual Basic for Applications (VBA) penceresini kapatın.
    8. Şimdi, `Developer` sekmesindeki `Macros` düğmesini tıklayın ve `EmailGonder` makro adını seçin, sonra `Run` butonuna tıklayarak makroyu çalıştırın.

    Bu makro, Excel'deki `E-Posta` sheetinde listelenen tüm e-posta adreslerine belirli bir konu ve e-posta metni ile e-postalar gönderir.


    -----------------------------------------------
    Başka bir yöntem,
    Herhangi bir programlama diliyle kolonları kontrol ettirip, bunu bir sisteme uydurarak kodlay(t)abilir örnek veriyorum, C# masaüstü yazılımla Exceli okuyabilir, yine aynı dilden de mail gönderebilirsiniz. Ya da api ile başka sistemlere mail göndertebilirsiniz.
    If ilçe==Taksim doİŞLEM()
    • Hattushil
    Hattushil bunu beğendi.
    1 kişi bunu beğendi.