- Katılım
- 15 Kasım 2012
- Mesajlar
- 24
- Excel Vers. ve Dili
- 2010 TR
Merhaba,
Ben aşağıdaki kodu kullanarak mail atma işlemi gerçekleştiriyorum.
Sub degis()
Dim sh As Worksheet
Set sh = Sheets("Sheet2")
For j = 4 To sh.[f65536].End(3).Row
If sh.Cells(j, "f") > 0 And sh.Cells(j, "I") = "" Then
adr = sh.Cells(j, "g")
ad_soyad = sh.Cells(j, "b")
Call posta
sh.Cells(j, "I") = "e-posta gönderildi"
End If
Next j
Set sh = Nothing
End Sub
Burada daha önceden tanımlanmış olan 'posta' fonksiyonu çağırılarak;
f sütunu boyunca herhangi bir j satırı sıfırdan büyük ise ve aynı satırda I sütunu boş ise.... bu satır bilgilerini mail atıyor ve I sütununu "e-posta gönderildi" yazısı ile dolduruyor.
Böylece f sütunu boyunca her yeni bir j satırı girildiğinde I sütunu boş olduğu için...o j satırı için kodu çalıştırıyor.
Örnek:
j=5' veri girildiğinde (yani F5'e) I5 boş olduğu için -> 5. satır için kod çalışacak
j=6 vb'ye daha önce kod girildiyse I6 vb dolu olacağı için bu satırlar es geçilecek.
Benim istediğim ise f sütunu boyunca herhangi bir j satırı hücresi değiştiğinde bu işlemin yapılması
Örnek:
j=5' daha önce veri girildiği için I5 dolu
diyelimki F5=55 girilmişti. bu F5 değerini değiştirdiğimizde(F5=58 dediğimizde) yine ve sadece 5. satır için için kodu çalıştırmasını istiyorum.
Bunun için:
For j = 4 To sh.[f65536].End(3).Row
If sh.Cells(j, "f") > 0 And sh.Cells(j, "I") = "" Then
yerine
For j = 4 To sh.[f65536].End(3).Row
If sh.Cells(j, "f") = Target.Address Then
şeklinde denedim ama olmadı.
Yardımcı olabilecek olan var mı ?
Anlatamadıysam örnek dosya koyabilirim.
Ben aşağıdaki kodu kullanarak mail atma işlemi gerçekleştiriyorum.
Sub degis()
Dim sh As Worksheet
Set sh = Sheets("Sheet2")
For j = 4 To sh.[f65536].End(3).Row
If sh.Cells(j, "f") > 0 And sh.Cells(j, "I") = "" Then
adr = sh.Cells(j, "g")
ad_soyad = sh.Cells(j, "b")
Call posta
sh.Cells(j, "I") = "e-posta gönderildi"
End If
Next j
Set sh = Nothing
End Sub
Burada daha önceden tanımlanmış olan 'posta' fonksiyonu çağırılarak;
f sütunu boyunca herhangi bir j satırı sıfırdan büyük ise ve aynı satırda I sütunu boş ise.... bu satır bilgilerini mail atıyor ve I sütununu "e-posta gönderildi" yazısı ile dolduruyor.
Böylece f sütunu boyunca her yeni bir j satırı girildiğinde I sütunu boş olduğu için...o j satırı için kodu çalıştırıyor.
Örnek:
j=5' veri girildiğinde (yani F5'e) I5 boş olduğu için -> 5. satır için kod çalışacak
j=6 vb'ye daha önce kod girildiyse I6 vb dolu olacağı için bu satırlar es geçilecek.
Benim istediğim ise f sütunu boyunca herhangi bir j satırı hücresi değiştiğinde bu işlemin yapılması
Örnek:
j=5' daha önce veri girildiği için I5 dolu
diyelimki F5=55 girilmişti. bu F5 değerini değiştirdiğimizde(F5=58 dediğimizde) yine ve sadece 5. satır için için kodu çalıştırmasını istiyorum.
Bunun için:
For j = 4 To sh.[f65536].End(3).Row
If sh.Cells(j, "f") > 0 And sh.Cells(j, "I") = "" Then
yerine
For j = 4 To sh.[f65536].End(3).Row
If sh.Cells(j, "f") = Target.Address Then
şeklinde denedim ama olmadı.
Yardımcı olabilecek olan var mı ?
Anlatamadıysam örnek dosya koyabilirim.
