Şartı süre ile geciktirmek

Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
vba'da sayfaya bunu yazdım

sub worksheet_change(byval target as range)
if target.column=1 and target.row=2 then
application.ontime now+timevalue("00:00:02"),"makronuz"
end if
end sub

modüle ise bunu yazdım

sub makronuz
if range("a2")=1 then range("a1")="doğru" else range("a1")="yanlış"
end sub


El ile a2 hücresine 1 yazarsam sıkıntı yok, makro çalışıyor. Fakat a2 hücresi içinde =TOPLA(H1:H4) yazınca ve H hücresi değerleri değişip formül 1 gösterdiğinde a2 hücresinde 1 yazmasına rağmen makro çalışmıyor. a2 hücresi içinde =TOPLA(H1:H4) bu formül yazılı şekilde nasıl çalışır, başka yöntem veya yol varsa yardımcı olur musunuz. Şimdiden teşekkürler.
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Çalışma Sayfanızın kod bölümüne aşağıdaki kodları olduğu gibi yapıştırın. Bende sorunsuz çalıştı.. Selamlar..

Public a2
Sub worksheet_change(ByVal target As Range)

If a2 <> Range("a2") Then
a2 = Range("a2")
Application.OnTime Now + TimeValue("00:00:02"), "makronuz"
End If

modül kısmındaki kodlarınız aynen kalabilir

sub makronuz
if range("a2")=1 then range("a1")="doğru" else range("a1")="yanlış"
end sub


End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
Kod:
Private Sub Worksheet_Calculate()
    'kodlar
End Sub
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Kod:
Private Sub Worksheet_Calculate()
    'kodlar
End Sub
Ek bilgi için teşekkürler.. Fakat Kullanıcı A2 hücresini elle değiştirirse, atıyorum 2 yada 1 yazarsa Worksheet_Calculate() komutları çalışmayacaktır. Program istenen sonuçları vermede başarılı olamayacaktır. Program değişik ve tüm alternatiflerde elden geldiğince çözüm üretebilmelidir.
Siz değerli üstadlarımızın ellerine su dökemeyiz. Bizimki nacizane bir yorum.
Ellerinize ve gönüllerinize sağlık.. Selamlar...
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
ek bilgi değil.
ben mesajımı yazarken konuya henüz cevap yazılmamıştı.
gönderdikten sonra gördüm sizinkini.

soruyu soran arkadaşımızın formül sonucunun değişmesi neticesinde tetiklenen bir kod aradığını düşünüyorum.

manuel değişimi sonucu tetiklemeyi zaten biliyor.

formül yazdığınız bir hücreye tekrar el ile giriş yaparak niye formülü bozasınız ki.
veya el ile veri girecekseniz niye formül yazasınız ki.
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Fikirlerinize katılıyorum.
Program formüllü haliyle zaten çalışıyor. Ben şayet ellede A2 Hücresine veri girilirse, program aksamadan çalışsın diye düşünmüştüm.
Yorumlarınız ve dönüş yaptığınız için teşekkürler.. Selamlar...
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
selam ve muhabbetle. :)
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,513
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
selam ve muhabbetle. :) Selamlar...
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Sub makronuz()
If Range("a2") > 0 Then Range("a1") = "0" Else Range("a1") = "1"
End Sub

yardımlarınız için teşekkür ederim, formülü şöyle değiştirmek zorunda kaldım, makro tam çalışmadı. a2 hücresi 0 olunca 1 yazıyor gayet güzel fakat 0'dan büyük sayı gelince 1 veya 2 gelince 0 rakamını yazmıyor. yanlış mı uyarlamışım.

edit: şimdi sizin formülü uyguladım 1 yazıyor ama 0 yazmıyor ilginç anlamadım, aynı sorun var. o h1,h2,h3,h4 hücreler içinde formüller var ondan mı kaynaklanıyor. onlar içindede toplama işlemleri var. bunlardan kaynaklasa formüller sonucu 0 yazınca 1 de yazmazdı ama onu yazıyor anlamadım.

if range("a2")=1 then range("a1")="0" else range("a1")="1"
 
Son düzenleme:
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Hocalarım eğer öyle olmuyorsa a2 hücresinde formül var orada sayılar azalıp artıyor, o hücre sayı değişiminde azalıp veya artmasında 2 saniyeliğine a1 hücresinde 1 yazsın ama 2 saniye sonra 0'a dönsün, a2'de yine artıp azalma oldu 2 saniye 1 yazdı tekrar 0'a döndü. Hep a1 de 0 yazacak sadece a2'de değişim olunca a1'de 2 saniye 1 yazacak. aynı şeyleri çok tekrar ettim galiba 2 saniye anahtar görevi görecek o da işimi görür. Hem daha güzel görür. hangisi basitse yapıverin size zahmet.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Private Sub Worksheet_Calculate()
'kodlar
End Sub


hocalarım teşekkür ederim ikinize bu formül ile oldu otomatik hesaplıyor, diğerinde el ile excelde değişiklik olursa ancak öyle değişiyor. Yarın sabah tüm excellerde deneyeceğim umarım olmuştur. Tekrar teşekkürler...
 
Üst