• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

'Target.Address' kullanımı hk yardım

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.
 
Merhaba,

Hücre değişimlerinde kodu çalışması için kodlarınızı sayfa olaylarına yazmalısınız. Böylece TARGET ifadesinden faydalanabilirsiniz.
 
Korhan Bey,

Cevabını için teşekkür ederim.

Benim istediğim şey hücre değişimi ile kod çalıştırılması/tetiklenmesi değil.

Benim istediğim : Seçilen bir sütun için (mesela A sütunu) A1'den A65000'e kadar olan hücreleri tarayıp üzerinde değişiklik yapılan hücrenin adresini bana vermesi.
 
Örnek dosya ekleyerek yapmak istediğiniz işlemi açıklar mısınız?
 
Korhan Bey,

Ekteki dosyayı incelemenizi rica ederim.

F sütununa veri girdiğimde -> veri girdiğim hücrenin bulunduğu satır bilgileri mail atıyor ve aynı satırda I hücresine "e-posta gönderildi" yazıyor.

Benim yapmak istediğim, dolu olan hücrelerin verisi değiştiğinde de bu işlemi yapabilsin. Mümkün müdür ?
 

Ekli dosyalar

Siz döngü ile ilgili satırların tamamını kontrol edip mail atıyorsunuz. Mail olarak gönderilen satırlarda "I" sütununa "e-posta gönderildi" ifadesini yazdırıyorsunuz. Döngünüzde "I" sütunu boş ise sorgusu var doğal olarak bu satırda yeniden yaptığınız değişiklikte "I" sütunundaki ifadeyi silerseniz istediğiniz sonuca ulaşmış olursunuz. Bunu da sayfada hücre değişim olayına yazılacak basit bir kodla halledebilirsiniz. Bu şekilde çözüm işinize yararsa kodu verebilirim.
 
Korhan Bey,

İstediğimi yaptım.Değişiklik yaptığım dosya ektedir.

I sütununu her defasında F sütununa eşitleyerek istediğimi elde ettim.

Böylece f sütununda herhangi bir hücreye yeni veri girdiğimde i sütunundaki karşılığına eşit olmadığı için (boş) kod bu satır için çalışacak.

F sütununda herhangi bir hüncede veriyi değiştirdiğimde ise i sütunundaki karşılığına eşit olmayacağı için (eski f değeri) yine ve sadece kod bu satır için çalışacak.


İlginiz için tekrar teşekkür ederim. İyi çalışmalar dilerim
 

Ekli dosyalar

Rica ederim. Kendi kendinize çözüm üretmeniz daha sevindirici bir haber. Tebrik ederim.
 
Geri
Üst