Skip to main content

AccessTr.neT


Makro İle Gönderdiğim Dosya Eski Bir Dosya Adıyla Farklı İçerikte Gidiyor

tarkanaykın
tarkanaykın
5
311

Makro İle Gönderdiğim Dosya Eski Bir Dosya Adıyla Farklı İçerikte Gidiyor

Çözüldü #1
merhaba arkadaşlar çok garip bir durumla karşı karşıyayım, ilk günlerde makro ile başarılı bir şekilde dosya gönderiyordum daha sonra başka bir dosya göndermeye karar verdim, makroda gerekli dosya ismi değişikliklerini de yaptım ama e postamı kontrol ettiğimde hala o eski dosya geliyor görünüyor, yardımlarınızı bekliyorum teşekkürler.
ilk gönderdiğim dosya adı "tespitler", onu artık iptal ettim "yaklaşanTarihler" adında yeni bir dosya göndermek istiyorum ama hala "tespitler" adlı dosya geliyor e postama.

kodlar bayağı bir düzensiz kusura bakmayın, üzgünüm.


Sub PEAKUP()

For i = 0 To 1
Dim Con As Object, Rs As Object, Sorgu As String

Set Con = CreateObject("AdoDB.Connection")

Set Rs = CreateObject("AdoDB.RecordSet")

Dim a(1) As String
a(0) = "evraklar"
a(1) = "mevraklar"

Con.Open "Provider=Microsoft.Ace.Oledb.12.0;Data Source=" & ThisWorkbook.Path & "\" & a(i) & ".xlsx ;Extended Properties=""Excel 12.0;Hdr=yes"""


Sorgu = "select [evrak adı], [son tarih], [ilk tarih] from [Sayfa1$] where [son tarih]< date()+15 or [ilk tarih]< date()+15"
Rs.Open Sorgu, Con, 1, 1


Dim SonSat As Long
   
    SonSat = Cells(Rows.Count, "A").End(3).Row + 1
    Range("A" & SonSat).Select


ActiveCell.CopyFromRecordset Rs
Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing

Next
If Range("a2").Value = "open" Then
Application.Visible = True
Exit Sub
Else

If Range("a2").Value = "" Then
Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing
ThisWorkbook.Saved = True
Application.Quit
Else
ActiveSheet.Copy
Application.DisplayAlerts = False
With ActiveWorkbook
.SaveAs "D:\tarihiYaklaşanlar.xlsx"

End With

MsgBox "tarihi yaklaşan kayıtlar var,ilgili dosyaları kontrol edin"
Call Email_CurrentWorkBook
Sorgu = vbNullString: Set Rs = Nothing: Set Con = Nothing
 
ThisWorkbook.Saved = True
Application.Quit

End If
End If
End Sub




Sub auto_open()
Application.Visible = False

Call PEAKUP

End Sub



Sub Email_CurrentWorkBook()
For i = 2 To Cells(Rows.Count, "f").End(3).Row ' burada, f2 hücresinden itibaren alt alta yazılı olan e posta adresleri var, dosyayı her birine 'göndermek için.

Dim Makro As Object
Dim Mail As Object
Set Makro = CreateObject("Outlook.Application")


Set Mail = Makro.CreateItem(0)
On Error Resume Next
With Mail
.To = Range("f" & i).Value
.CC = ""
.BCC = ""
.Subject = "Örnek"
.Body = "örnektir"
.Attachments.Add ("D:\tarihiYaklaşanlar.xlsx")
.Send
End With
On Error GoTo 0
Set Mail = Nothing
Set Makro = Nothing
Next

End Sub
.rar evrakTarihKontrol5.rar (Dosya Boyutu: 17,5 KB | İndirme Sayısı: 2)
Son Düzenleme: 22/05/2022, 23:04, Düzenleyen: tarkanaykın.
Cevapla
#2
Arkadaşlar çok uğraştım bulamadım, bir de outlook u kapatıp açmayı denedim ve eski dosyam artık gelmiyor, yenisi geliyor tamamdır, kolay gelsin.
Cevapla
#3
On Error Resume Next
....
....
On Error GoTo 0
kodunu bilinçli mi kullanıyorsunuz? Bu kod projenin tasarım ve kodlaması tamamlandıktan sonra kodların verimliliği ve hızını arttırmak için error handler yerine kullanılır ve o noktaya kadar karşılaştığınız hataları çözdüğünüz anlamına gelir. Projenizi tam bilmiyorum ancak gördüğüm kadarı ile siz henüz tasarım aşamasında kullanıyorsunuz oluşan hataları nasıl izlemeyi ve düzeltmeyi planlıyorsunuz?
Cevapla
#4
Yok bilinçli kullanmıyorum, vb ye yeni yeni hakim olma sürecindeyim, ben daha çok kodların her birini bir yapboz parçası olarak görüp ihtiyaç doğrultusunda tıpkı bir lego ile bir şey inşa eder gibi kullanıyorum şu süreçte, o ifadenin de fonksiyonunu tam bilmiyorum, ama bu inşa sürecinde sizlerden aldığım bilgilerle kendimi güncelliyorum, öğreniyorum. Dediğiniz gibi o kod copy-past olayından ibaret, profesyonel iş yapamıyorum, bu hata yönlendirmeleri falan önemli onu biliyorum. Handler ne demek onu da bi araştırayım bu arada, ilgilerinize teşekkürler.
Cevapla
#5
Bu makale error / error handling mantığını anlamanıza yardımcı olacaktır. Buradan hareket ile daha detaylı inceleyebilir bu noktadan sonra hata çözümlemeleri noktasında bir senaryo belirlemenizi ve projeniz tamamlandıktan sonra kod iyileştirme işlemlerini nasıl uygulayacağınızı değerlendirme aşamasında temeliniz olmasını sağlar.
Cevapla
#6
Tamam, çok teşekkür ederim yardım ve önerileriniz için.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da