Merhaba, sitede araştırma yaptım ama detaylı yoktu , aylık olarak firmalar cari hesap mutabakat mektubu mail atmak istiyorum yalnız üç farklı para birimi bulunmakta detaylı anlatım dosya içinde var ilgilenen arkadaşlara teşekkürü borç bilirim.
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub KOD()
[COLOR="Green"] 'NOT: TOOLS-REFERENCES TIKLA
'MİCROSOFT OUTLOOK 12.0 İŞARETLİ OLMALI[/COLOR]
Dim SD As Worksheet
Dim SM As Worksheet
Dim SMG As Worksheet
Dim SR As Worksheet
Set SD = Sheets("data")
Set SM = Sheets("mizan")
Set SMG = Sheets("mail gönder")
Set SR = Sheets("rapor")
If Selection.Column <> 3 Then Exit Sub
With Selection
ilk_sat = .Row
son_sat = .Rows.Count + ilk_sat - 1
End With
For i = ilk_sat To son_sat
If SMG.Cells(i, "C") <> "" Then
For a = 2 To SM.Cells(Rows.Count, "B").End(3).Row
If SMG.Cells(i, "C") = SM.Cells(a, "B") Then
SD.Range("B19") = SM.Cells(a, "B")
If SM.Cells(a, "H") = "" Then
SD.Range("C26") = "TL"
Else
SD.Range("C26") = SM.Cells(a, "H")
End If
If SM.Cells(a, "F") > 0 Then
SD.Range("B26") = SM.Cells(a, "F")
SD.Range("E26") = "BORÇ"
Else
SD.Range("B26") = SM.Cells(a, "G")
SD.Range("E26") = "ALACAK"
End If
yol = CreateObject("WScript.Shell").specialfolders("Desktop") & "\" & SMG.Cells(i, "A").Row & ".pdf"
SD.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
yol, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = SMG.Cells(i, "E").Value
.CC = ""
.Subject = "Mutabakat"
.Attachments.Add yol
.Save
[COLOR="green"] '.Display[/COLOR]
.Send
End With
sonsat = SR.Cells(Rows.Count, "A").End(3).Row + 1
SR.Cells(sonsat, "A") = SMG.Cells(i, "C")
SR.Cells(sonsat, "B") = SMG.Cells(i, "D")
SR.Cells(sonsat, "C") = Now
Exit For
Else: End If
Next a
Kill yol
Else: End If
Next i
Set objMail = Nothing
Set objOutlook = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
. . .
mail gönder sayfasında C sütununda göndermek istediğiniz müşterileri aralıksız seçin.
Örneğin C3:C5 sonra C6:C10 gibi.
Bunu gönderme işlemini 10-15 li gruplar halinde yapmanız için yaptım ki spama düşmeyin.
Firma ünvanları mizan ile aynı olmalı. (C ve B sütunları)
Data sayfanızın baskısını A4 sayfasına sığacak hale getirmenizde fayda var.
Kod:Sub KOD() [COLOR="Green"] 'NOT: TOOLS-REFERENCES TIKLA 'MİCROSOFT OUTLOOK 12.0 İŞARETLİ OLMALI[/COLOR] Dim SD As Worksheet Dim SM As Worksheet Dim SMG As Worksheet Dim SR As Worksheet Set SD = Sheets("data") Set SM = Sheets("mizan") Set SMG = Sheets("mail gönder") Set SR = Sheets("rapor") If Selection.Column <> 3 Then Exit Sub With Selection ilk_sat = .Row son_sat = .Rows.Count + ilk_sat - 1 End With For i = ilk_sat To son_sat If SMG.Cells(i, "C") <> "" Then For a = 2 To SM.Cells(Rows.Count, "B").End(3).Row If SMG.Cells(i, "C") = SM.Cells(a, "B") Then SD.Range("B19") = SM.Cells(a, "B") If SM.Cells(a, "H") = "" Then SD.Range("C26") = "TL" Else SD.Range("C26") = SM.Cells(a, "H") End If If SM.Cells(a, "F") > 0 Then SD.Range("B26") = SM.Cells(a, "F") SD.Range("E26") = "BORÇ" Else SD.Range("B26") = SM.Cells(a, "G") SD.Range("E26") = "ALACAK" End If yol = CreateObject("WScript.Shell").specialfolders("Desktop") & "\" & SMG.Cells(i, "A").Row & ".pdf" SD.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ yol, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False With Application .EnableEvents = False .ScreenUpdating = False End With Dim objOutlook As Object Dim objMail As Object Set objOutlook = CreateObject("Outlook.Application") Set objMail = objOutlook.CreateItem(0) With objMail .To = SMG.Cells(i, "E").Value .CC = "" .Subject = "Mutabakat" .Attachments.Add yol .Save [COLOR="green"] '.Display[/COLOR] .Send End With sonsat = SR.Cells(Rows.Count, "A").End(3).Row + 1 SR.Cells(sonsat, "A") = SMG.Cells(i, "C") SR.Cells(sonsat, "B") = SMG.Cells(i, "D") SR.Cells(sonsat, "C") = Now Exit For Else: End If Next a Kill yol Else: End If Next i Set objMail = Nothing Set objOutlook = Nothing With Application .EnableEvents = True .ScreenUpdating = True End With End Sub
. . .
. . .
Kodlar çalışıyor. Bir kaç revize yaptım.
Dosyanız ektedir ve çalışma adımları videosu aşağıdadır.
Dikkat etmeniz gerek kısımlar;
- Mizan sayfası ile mail gönder sayfasındaki firma isimleri aynı olmalı.
- mail gönder sayfasında C sütununda mail göndermek istediğiniz firmaları seçip, kodu çalıştırın.
Ekran Görüntüsü (GİF)
![]()
. . .
. . .hüseyin bey dosya ve gif dosyası çok güzel olmuş çok teşekkür ederim,
1) dosyayı incelediğimde , tl de sıkıntı yok ama dolar ve euro cinsinde mail atılacak tutar k ve l sütunu olması gerekiyor ( Döviz Borç Bakiyesi ,Döviz Alacak Bakiyesi )
2) birde maillin içine bir açıklama yazdım data klasörünün altına bunu 70- 89 arasındaki mailin içine yazma imkanımız varmı
. . .
Dosyanız ektedir.
. . .
. . .
Kodları incelerseniz .send satırı pasif yaptım ki ben denemeler yaparken sürekli mail atmaması için.
Sizde .Display satırını pasif yapıp, .send satırını aktif edin.
. . .
. . ..........
HÜSEYİN BEY kolay gelsın netsısten verılerı otomatık olarak excele bağlattım ve pivot tablo olarak ekledım verdığınız calışmayı ektekı kıtaba uyarlamaya calıştım ama olmadı rıca etsem ınceleme sansınız varmıdır
ıyı çalışmalar kolay gelsın
. . .merakla beklıyorum huseyın bey![]()