Çözüldü Liste ile Farklı Ek ve Farklı Adreslere Mail Gönderme

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
585
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
A sütunundaki veriler METİN formatında girildi;
EKLER klasöründeki ek dosyalar A sütunundaki veri ile aynı ismi taşıması gerekir.

Makro çalışınca kaç adet mail varsa ekrana o kadar gönderme penceresi açılır...
Mağaza Numarası ile eşleşen ek yoksa o adrese mail göndermez.
*Listede 100 mail var, ek 25 ise > 25 mail gönderilir..

Örnekler ektedir.

**Microsoft Outlook olması ve hesap tanımlı olması gerekir.. Çalıştırmadan önce outlook programı açık olsun.


243568


C++:
Sub Mail_At()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim sh As Worksheet
    Dim lastRow As Long
    Dim magazaNum As String
    Dim magazaMail As String
    Dim ccMail As String
    Dim path As String
    Dim file As String
    Dim filePath As String
 
    ' Mağaza bilgileri bulunan sayfayı belirleme
    Set sh = ThisWorkbook.Sheets("Mail")
 
    ' Mağaza bilgileri bulunan son satırı bulma
    lastRow = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row
 
    ' Outlook uygulamasını başlatma
    Set OutApp = CreateObject("Outlook.Application")
 
    ' Mağaza bilgilerini kontrol etme
    For i = 2 To lastRow ' İlk satır başlık olduğu varsayılmıştır
        magazaNum = sh.Range("A" & i).Value
        magazaMail = sh.Range("B" & i).Value
        ccMail = sh.Range("C" & i).Value
     
        ' Dosya yolu ve ismini oluşturma
        path = ThisWorkbook.path & "\EKLER\"
        file = magazaNum & ".xlsx"
        filePath = path & file
     
        ' Dosyanın var olup olmadığını kontrol etme
        If Dir(filePath) <> "" Then
            ' Yeni e-posta oluşturma
            Set OutMail = OutApp.CreateItem(0)
            With OutMail
                .To = magazaMail
                .CC = ccMail
                .Subject = magazaNum & " Mağaza Envanter Sonucu"
                .Body = magazaNum & " mağazasına ait envanter sonucu ektedir."
                .Attachments.Add (filePath)
                .Display ' Göndermeden önce maili kontrol etmek için
                '.Send ' Göndermek için
            End With
            Set OutMail = Nothing
        End If
    Next i
 
    Set sh = Nothing
    Set OutApp = Nothing
End Sub

 

Ekli dosyalar

Son düzenleme:

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
585
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Maili otomatik gönderir. Güven ayarının yapılması gerekir.
.Display pasif / .Send aktif edilmiştir.

243571



C#:
Sub Mail_At()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim sh As Worksheet
    Dim lastRow As Long
    Dim magazaNum As String
    Dim magazaMail As String
    Dim ccMail As String
    Dim path As String
    Dim file As String
    Dim filePath As String
   
    ' Mağaza bilgileri bulunan sayfayı belirleme
    Set sh = ThisWorkbook.Sheets("Mail")
   
    ' Mağaza bilgileri bulunan son satırı bulma
    lastRow = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row
   
    ' Outlook uygulamasını başlatma
    Set OutApp = CreateObject("Outlook.Application")
   
    ' Mağaza bilgilerini kontrol etme
    For i = 2 To lastRow ' İlk satır başlık olduğu varsayılmıştır
        magazaNum = sh.Range("A" & i).Value
        magazaMail = sh.Range("B" & i).Value
        ccMail = sh.Range("C" & i).Value
       
        ' Dosya yolu ve ismini oluşturma
        path = ThisWorkbook.path & "\EKLER\"
        file = magazaNum & ".xlsx"
        filePath = path & file
       
        ' Dosyanın var olup olmadığını kontrol etme
        If Dir(filePath) <> "" Then
            ' Yeni e-posta oluşturma
            Set OutMail = OutApp.CreateItem(0)
            With OutMail
                .To = magazaMail
                .CC = ccMail
                .Subject = magazaNum & " Mağaza Envanter Sonucu"
                .Body = magazaNum & " mağazasına ait envanter sonucu ektedir."
                .Attachments.Add (filePath)
                '.Display ' Göndermeden önce maili kontrol etmek için
                .Send ' Göndermek için
            End With
            Set OutMail = Nothing
        End If
    Next i
   
    Set sh = Nothing
    Set OutApp = Nothing
End Sub
 

Ekli dosyalar

Üst