Soru Makro ile hem çıktı hem de Mail Gönderme

Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
Merhabalar

Çalışma dosyamın KASA DEFTERİ sayfasında BuGünüYazdır butonu ile çıktı alıyorum. belirtilen zamanda degil de Çıktı için HER tıkladığımda mail göndermesini de istiyorum. @turist hocamın paylaştığı Bu kod işimi görür mü ya da düzenleyebilir misiniz. Teşekkür eder saygılar sunar Sıhhatli huzurlu günler dilerim.


Sub Auto_Open()
Application.OnTime TimeValue("12:18:00"), "MailGonder"
End Sub

Sub MailGonder()
Dim OutApp As Object, Outmail As Object
Set OutApp = CreateObject("Outlook.Application")
Set Outmail = OutApp.CreateItem(0)
Outmail.BodyFormat = 2
With Outmail
.To = "genceller@hotmail.com.tr"
.CC = ""
.Subject = "KONTR0L M€RK3Z1"
.Attachments.Add D:\Şirket Evrakları\Kontrol Merkezi.xlsm
.Display
.Send 'Göndermek için .send den önceki ' tek tırnak işaretini kaldırın
End With
Set Outmail = Nothing: Set OutApp = Nothing
End Sub
 

Ekli dosyalar

Son düzenleme:
Katılım
8 Eylül 2008
Mesajlar
950
Excel Vers. ve Dili
2016 İngilizce
çıktı için bastığın butona atadığın makronun sonuna
Call MailGonder
kodunu eklemen yeterli. böylelikle çıktı için butona bastığında çıktını alacaksın ve ardından yazdırdığın bu alanı da mail olarak göndermiş olacaksın
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
BeforePrint olayını kullanabilirsiniz. Çalışma kitabının ThisWorkBook kısmına ekleyin.
Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'... Kodlarınız
End Sub
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
BeforePrint olayını kullanabilirsiniz. Çalışma kitabının ThisWorkBook kısmına ekleyin.
Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'... Kodlarınız
End Sub
Kodlara hakim olmadığım için sayfamda birçok kod olduğu için affınıza sığınarak eklediğim dosyaya eklemeniz rica olunur.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Öncelikle belirteyim, kodlara hakim olmadan böyle bir yapı oluşturduğunuz için sizi tebrike etmek lazım.
BeforePrint olayını kullanmadan sizin daha önce belirlediğiniz SurYaz kodu sonuna MailGonder başlığını ekledim. Tabii ki MailGonder kodunu module ekleminiz gerekmektedir.
Kod:
Sub SuzYaz()
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Kson = Evaluate("=Kson")
bugun = CLng([F3])
adet = WorksheetFunction.CountIf(Range("F4:F" & Kson), bugun)
If adet = 0 Then
    MsgBox [F3] & " gününe ait kayıtlı veri yok.", vbCritical
    Range("$B$3:$F$3").AutoFilter Field:=5
    GoTo 10
Else
    Range("$B$3:$F$3").AutoFilter Field:=5, Criteria1:=">=" & CLng(bugun)
    ActiveSheet.PageSetup.PrintArea = "$B$1:$G$" & Kson
    ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Ne00: üzerindeki P-3025 MFP KX", _
    Collate:=True, IgnorePrintAreas:=False
    Range("$B$3:$F$3").AutoFilter Field:=5
    MsgBox [F3] & " tarihine ait veriler yazıcıya gönderildi.", vbInformation
    MailGonder
End If
10:
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
End Sub
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
Öncelikle belirteyim, kodlara hakim olmadan böyle bir yapı oluşturduğunuz için sizi tebrike etmek lazım.
BeforePrint olayını kullanmadan sizin daha önce belirlediğiniz SurYaz kodu sonuna MailGonder başlığını ekledim. Tabii ki MailGonder kodunu module ekleminiz gerekmektedir.
Kod:
Sub SuzYaz()
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Kson = Evaluate("=Kson")
bugun = CLng([F3])
adet = WorksheetFunction.CountIf(Range("F4:F" & Kson), bugun)
If adet = 0 Then
    MsgBox [F3] & " gününe ait kayıtlı veri yok.", vbCritical
    Range("$B$3:$F$3").AutoFilter Field:=5
    GoTo 10
Else
    Range("$B$3:$F$3").AutoFilter Field:=5, Criteria1:=">=" & CLng(bugun)
    ActiveSheet.PageSetup.PrintArea = "$B$1:$G$" & Kson
    ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Ne00: üzerindeki P-3025 MFP KX", _
    Collate:=True, IgnorePrintAreas:=False
    Range("$B$3:$F$3").AutoFilter Field:=5
    MsgBox [F3] & " tarihine ait veriler yazıcıya gönderildi.", vbInformation
    MailGonder
End If
10:
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
End Sub
Teşekkür ederim. Pazartesi şirketten yazıcı ortamından deneyip gelişmeleri paylaşacağım.
1586429080729.png
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
kodu bu şekilde düzeltmeye çalıştım ama nerde hata yapıyorum. Ne yazıyor ne de mail gönderiyor?

Sub SuzYaz()
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Sub Auto_Open()
Application.OnTime TimeValue("12:18:00"), "MailGonder"
End Sub

Sub MailGonder()
Dim OutApp As Object, Outmail As Object
Set OutApp = CreateObject("Outlook.Application")
Set Outmail = OutApp.CreateItem(0)
Outmail.BodyFormat = 2
With Outmail
.To = "genceller@hotmail.com.tr"
.CC = ""
.Subject = "KONTR0L M€RK3Z1"
.Attachments.Add C:\Users\user\OneDrive\Masaüstü
.Display
.Send 'Göndermek için .send den önceki ' tek tırnak işaretini kaldırın
End With
Set Outmail = Nothing: Set OutApp = Nothing
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Kson = Evaluate("=Kson")
bugun = CLng([F3])
adet = WorksheetFunction.CountIf(Range("F4:F" & Kson), bugun)
If adet = 0 Then
MsgBox [F3] & " gününe ait kayıtlı veri yok.", vbCritical
Range("$B$3:$F$3").AutoFilter Field:=5
GoTo 10
Else
Range("$B$3:$F$3").AutoFilter Field:=5, Criteria1:=">=" & CLng(bugun)
ActiveSheet.PageSetup.PrintArea = "$B$1:$G$" & Kson
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Ne00: üzerindeki P-3025 MFP KX", _
Collate:=True, IgnorePrintAreas:=False
Range("$B$3:$F$3").AutoFilter Field:=5
MsgBox [F3] & " tarihine ait veriler yazıcıya gönderildi.", vbInformation
MailGonder
End If
10:
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Siz işi biraz karıştırmışsınız. Kodları aşağıdaki gibi bir Module içine ekleyin. Auto _open prosedürünü de kaldırın.

Kod:
Sub MailGonder()
Dim OutApp As Object, Outmail As Object
Set OutApp = CreateObject("Outlook.Application")
Set Outmail = OutApp.CreateItem(0)
Outmail.BodyFormat = 2
With Outmail
.To = "genceller@hotmail.com.tr"
.CC = ""
.Subject = "KONTR0L M€RK3Z1"
.Attachments.Add D:\Şirket Evrakları\Kontrol Merkezi.xlsm
.Display
.Send 'Göndermek için .send den önceki ' tek tırnak işaretini kaldırın
End With
Set Outmail = Nothing: Set OutApp = Nothing
End Sub

Sub SuzYaz()
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Kson = Evaluate("=Kson")
bugun = CLng([F3])
adet = WorksheetFunction.CountIf(Range("F4:F" & Kson), bugun)
If adet = 0 Then
    MsgBox [F3] & " gününe ait kayıtlı veri yok.", vbCritical
    Range("$B$3:$F$3").AutoFilter Field:=5
    GoTo 10
Else
    Range("$B$3:$F$3").AutoFilter Field:=5, Criteria1:=">=" & CLng(bugun)
    ActiveSheet.PageSetup.PrintArea = "$B$1:$G$" & Kson
    ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Ne00: üzerindeki P-3025 MFP KX", _
    Collate:=True, IgnorePrintAreas:=False
    Range("$B$3:$F$3").AutoFilter Field:=5
    MsgBox [F3] & " tarihine ait veriler yazıcıya gönderildi.", vbInformation
    MailGonder
End If
10:
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
End Sub
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
sayın @hamitcan ilginiz için teşekkür ederim

Böyle bi hata verdi belli olsun diye resim olarak gönderdim. Auto _open prosedürü nerden kapatılıyor. onu da bilmiyorum.
Yardımcı olabilir misiniz acaba?

216719
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Auto _ Open prosedürüne gerek olmadığı için söyledim. Diğer konu; eklemek istediğiniz yolu çift tırnak içine almalısınız.
Örn: "D:\Şirket..." şeklinde.
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
bel
Auto _ Open prosedürüne gerek olmadığı için söyledim. Diğer konu; eklemek istediğiniz yolu çift tırnak içine almalısınız.
Örn: "D:\Şirket..." şeklinde.
belirtebilir misiniz hangi satırlar? Yeterince Kod yoğunluğu var. gereksizse çalışma hızını yavaşlatmaması için kaldırmak istiyorum.
 
Katılım
12 Ekim 2010
Mesajlar
224
Excel Vers. ve Dili
2013 türkçe
Altın Üyelik Bitiş Tarihi
01-03-2021
Hocam kırmızı yazılı yer var ya orda Add den sonra D nin başına tırnak koyacaksın birde xlsm nin en sonuna koyacaksın
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
Hocam kırmızı yazılı yer var ya orda Add den sonra D nin başına tırnak koyacaksın birde xlsm nin en sonuna koyacaksın
Eksik açıklama yazmışım galiba???? Auto_open prosedüründen bahsediyorum ama????
 
Katılım
12 Ekim 2010
Mesajlar
224
Excel Vers. ve Dili
2013 türkçe
Altın Üyelik Bitiş Tarihi
01-03-2021
Sub Auto_Open()
Application.OnTime TimeValue("12:18:00"), "MailGonder"
End Sub

Üstteki koda gerek yok diyorlar...
Bu kod her açtığında mali gönderir bu kodu silersen sen butona bastığında hem çıktı alır hem amil gönderir
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
Kodun son hali olarak bu şekilde deneyeceğim. Doğrumudur acaba dostlar?

Sub MailGonder()
Dim OutApp As Object, Outmail As Object
Set OutApp = CreateObject("Outlook.Application")
Set Outmail = OutApp.CreateItem(0)
Outmail.BodyFormat = 2
With Outmail
.To = "genceller@hotmail.com.tr"
.CC = ""
.Subject = "KONTR0L M€RK3Z1"
.Attachments.Add “D:\Şirket Evrakları\Kontrol Merkezi.xlsm
.Display
.Send 'Göndermek için .send den önceki ' tek tırnak işaretini kaldırın
End With
Set Outmail = Nothing: Set OutApp = Nothing
End Sub
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
Auto _ Open prosedürüne gerek olmadığı için söyledim. Diğer konu; eklemek istediğiniz yolu çift tırnak içine almalısınız.
Örn: "D:\Şirket..." şeklinde.
Resimdeki gibi bir hata aldım
-dosya adı doğru
-bulunduğu konum doğru

Dosyayı da ekledim.

Sub MailGonder()
Dim OutApp As Object, Outmail As Object
Set OutApp = CreateObject("Outlook.Application")
Set Outmail = OutApp.CreateItem(0)
Outmail.BodyFormat = 2
With Outmail
.To = "genceller@hotmail.com.tr"
.CC = ""
.Subject = "KONTR0L M€RK3Z1"
.Attachments.Add “D:\Şirket Evrakları\111111111.xlsm"
.Display
.Send 'Göndermek için .send den önceki ' tek tırnak işaretini kaldırın
End With
Set Outmail = Nothing: Set OutApp = Nothing
End Sub
Sub SuzYaz()
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
Kson = Evaluate("=Kson")
bugun = CLng([F3])
adet = WorksheetFunction.CountIf(Range("F4:F" & Kson), bugun)
If adet = 0 Then
MsgBox [F3] & " gününe ait kayıtlı veri yok.", vbCritical
Range("$B$3:$F$3").AutoFilter Field:=5
GoTo 10
Else
Range("$B$3:$F$3").AutoFilter Field:=5, Criteria1:=">=" & CLng(bugun)
ActiveSheet.PageSetup.PrintArea = "$B$1:$G$" & Kson
ActiveSheet.PrintOut Copies:=1, ActivePrinter:="Ne00: üzerindeki P-3025 MFP KX", _
Collate:=True, IgnorePrintAreas:=False
Range("$B$3:$F$3").AutoFilter Field:=5
MsgBox [F3] & " tarihine ait veriler yazıcıya gönderildi.", vbInformation
End If
10:
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayStatusBar = True
End Sub
216808
 

Ekli dosyalar

Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
.Attachments.Add 'D:\Şirket Evrakları\111111111.xlsm'

çift tırnak yaptığımda yazı renki kırmızı oluyor ama tek tırmağa çevirince yeşil oluyor ama mail yine gelmedi?
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Muhtemelen eklemek istediğiniz dosyanın ya yolu yanlış yada ismi ve uzantısı.
 
Katılım
25 Mayıs 2010
Mesajlar
480
Excel Vers. ve Dili
Office 2019
64bit
Tr
Win 10
Altın Üyelik Bitiş Tarihi
12-07-2024
Muhtemelen eklemek istediğiniz dosyanın ya yolu yanlış yada ismi ve uzantısı.
Dosya yolunu bu şekilde yaptım. ama maili yine göndermedi?
216846
 
Üst