Makro ile pdf Kaydedilen dosyayı Mail Gönderme

Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Kod:
Sub Auto_Open()
Dim shf1 As Worksheet, shf3 As Worksheet

Set shf1 = ThisWorkbook.Worksheets("Sayfa1")
Set shf3 = ThisWorkbook.Worksheets("Sayfa3")
 
MsgBox "Merhaba Ekaya9148 G3 ve G4 deki değerler H3 ve H4' e kopyalandı"
shf3.[H3].Value = shf1.[G3].Value
shf3.[H4].Value = shf1.[G4].Value
 
Set shf1 = Nothing
Set shf3 = Nothing
End Sub
 
Katılım
24 Ağustos 2022
Mesajlar
8
Excel Vers. ve Dili
2019 ingilizce
Kod:
Sub Auto_Open()
Dim shf1 As Worksheet, shf3 As Worksheet

Set shf1 = ThisWorkbook.Worksheets("Sayfa1")
Set shf3 = ThisWorkbook.Worksheets("Sayfa3")

MsgBox "Merhaba Ekaya9148 G3 ve G4 deki değerler H3 ve H4' e kopyalandı"
shf3.[H3].Value = shf1.[G3].Value
shf3.[H4].Value = shf1.[G4].Value

Set shf1 = Nothing
Set shf3 = Nothing
End Sub

Necati hocam çok teşekkür ederim. Kod çalıştı. Ama bu seferde bir önceki yazdığımız kodların en başına yazdığım için açar açmaz kopyalamayı yaptırıp pdf olarak kayıt edip mail gönderiyor. Açınca sadece hücre kopyalamasını yapsın. Değişiklikleri yaptıktan sonra butona basınca pdf e çevirip mail atmasını istiyorum. Tüm kodlar aşağıdadır.

Sub Auto_Open ()
Dim shf1 As Worksheet, shf2 As Worksheet
Set shf2 = ThisWorkbook.Worksheets("Disbursment")
Set shf2 = ThisWorkbook.Worksheets("Disbursment")

MsgBox "Hücrelerdeki veriler kopyalandı."
shf2.[F12].Value = shf2.[F33].Value
shf2.[G12].Value = shf2.[G33].Value

Set shf2 = Nothing
Set shf2 = Nothing
End Sub

Sub CreatePDF()

ThisWorkbook.ExportAsFixedFormat xlTypePDF, Filename:="c:\PDF\" & "deneme _ " & Date & ".pdf"

Application.Wait (Now + TimeValue("00:00:10"))

Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

On Error Resume Next

With OutMail
.To = "xxx@yyy.zzz"
.CC = ""
.BCC = ""
.Subject = "xyz"
.Body = "xyz"
.Attachments.Add ("c:\PDF\" & "deneme _ " & Date & ".pdf")
.Send

End With

On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

End Sub
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Sub Auto _Open() ile sizin ilk yazdığınız makronuz birleştirilmeyecek, iki ayrı makro olacak. Aralarındaki tek fark Sub Auto _Open() kendiliğinden çalışıyor. Sizinkini ise düğme ile çalıştıracaksınız.
 
Katılım
24 Ağustos 2022
Mesajlar
8
Excel Vers. ve Dili
2019 ingilizce
Sub Auto _Open() ile sizin ilk yazdığınız makronuz birleştirilmeyecek, iki ayrı makro olacak. Aralarındaki tek fark Sub Auto _Open() kendiliğinden çalışıyor. Sizinkini ise düğme ile çalıştıracaksınız.

Necati hocam çok teşekkür ederim. 3 bilgisayarda çalıştırılacak bu excel. 2 bilgisayarda herşey normal. Hücredeki rakamlar değişiyor. PDF yapıp mail atıyor. Ama bir bilgisayarda;

Run-time error '1004'

Document not saved. The document may be open, or an error may have been encountered when saving.

hatası veriyor. Dosya diğer bilgisayarlarda kapalı. Ne olabilir sorun?
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
3 bilgisayarda yol tanımını kontrol etmeli. Ya c:\PDF\ diye bir klasör yok, yada kullanıcının o klasörde yazma hakkı kısıtlı olabilir.
 
Katılım
24 Ağustos 2022
Mesajlar
8
Excel Vers. ve Dili
2019 ingilizce
Kod:
Sub Auto_Open()
Dim shf1 As Worksheet, shf3 As Worksheet

Set shf1 = ThisWorkbook.Worksheets("Sayfa1")
Set shf3 = ThisWorkbook.Worksheets("Sayfa3")

MsgBox "Merhaba Ekaya9148 G3 ve G4 deki değerler H3 ve H4' e kopyalandı"
shf3.[H3].Value = shf1.[G3].Value
shf3.[H4].Value = shf1.[G4].Value

Set shf1 = Nothing
Set shf3 = Nothing
End Sub

Necati Hocam Merhaba,

Bu kod çok güzel çalışıyor. Fakat gün içerisinde excel dosyası bir çok kez açılıyor ve veri işleniyor. Her açtığımızda kopyalama yapınca fark oluşuyor. Bu kopyalamayı ilk açıldığında yapsa ve gün içerisinde açıldığında yapmasın istiyoruz. Ne eklemem gerekiyor?
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Boş bir hücreye günün tarihini yazdırıp kontrol ettirilirse her açılışta işlem yapmaz. Sadece ilk açılışta işlem yapar.
Mesela "Sayfa1" de "A1" hücresi için şöyle olabilir:
Kod:
Sub Auto_Open()
Dim shf1 As Worksheet, shf3 As Worksheet

Set shf1 = ThisWorkbook.Worksheets("Sayfa1")
Set shf3 = ThisWorkbook.Worksheets("Sayfa3")

If shf1.[A1] = Date Then Exit Sub
 
shf3.[H3].Value = shf1.[G3].Value
shf3.[H4].Value = shf1.[G4].Value

shf1.[A1] = Date
shf1.[A1].NumberFormat = "dd.mm.yyyy"

MsgBox "Merhaba Ekaya9148 G3 ve G4 deki değerler H3 ve H4' e kopyalandı"

Set shf1 = Nothing
Set shf3 = Nothing
End Sub
 
Üst