Hücre değeri artıp azalınca anahtar açıp kapatma

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Saniye olanda, süreyle ilgili sorun yaşanması normal, belgedeki formül yoğunluğu (hele bir de çok sayıda dizi formülü varsa) veya
ağdaki başka bir bilgisayardan ya da borsa/kur/altın fiyatları gibi internetten bilgi çektiğiniz bir belgede kullanacaksanız, işlemcinin durumuna göre durum değişebilir.
Diğerinde ise timer nesnesinde sayım yapıldığından (işlemin saat ile bağlantısı yok) sorun yaşanmayacaktır.
Önceki cevabıma (16 numaralı cevap) eklediğim belgeleri, 19 numaralı cevabımdaki açıklamalarıma göre düzenleyerek tekrar ekledim.
Yeni belgelere 16 numaralı cevaptan erişebilirsiniz.
.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Teşekkür ederim hocam, evet formül dizileri var ve binada diğer ağdan veriler geliyor. Bu saydırma işlemi gerçekten dediğiniz gibi çok güzel çalışıyor. problemi benim isteğimden daha güzel şekilde uygulayıp yaptınız, tebrik ederim. Şunu içten söylüyorum, sizin gibi çalışkan donanımlı bir insan umarım istediği yerdedir, sağlıcakla kalın.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Eyvallah, kolay gelsin.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Public hedef As Integer

Private Sub Worksheet_Calculate()
Dim StartTime As Double
If [Y15] = "1" Then Exit Sub
If hedef <> [Y14] Then
[Y15] = "1"
Const delay = 0.1
StartTime = Timer
Do
Loop While Timer - StartTime < delay
hedef = [Y14]
[Y15] = "0"
End If
End Sub

Merhaba Ömer hocam yukarıdaki bu formülü yazmıştınız, çok güzel çalışıyor. Burada hücre değişince hemen 1 yazıyor gecikme sonrası 0'a dönüyor. Bunun önüne yine gecikme ekleyebilir miyiz. hücre değişti 0,1 ms sonra 1 yazdı 0,1 ms sonra hemen 0 olabilir mi? faye arkadaş aşağıdaki gibi önüne eklemişti bunun gibi sizinkine ekleme yapılabilir mi? Sizi de çok rahatsız ettim uygun olduğunuzda cevap verirseniz sevinirim. Saygılar...

Public a1, a2, a3
Private Sub worksheet_change(ByVal target As Range)
If target.Column = 1 Then
Application.Wait Now + TimeValue("00:00:01")
If Range("y14") <> "=SUM(R[-13]C[-24]:R[-11]C[-24])" Then
Range("y15") = "doğru"
Application.Wait Now + TimeValue("00:00:01")
Range("y15") = "yanlış"
End If
End If
End Sub
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Tekrar merhaba.
Mantık olarak aşağıdaki şekilde istediğinizin olması lazım.
-- Mavi olan DOĞRU'ya dönüşene kadar geçecek süreyi,
-- Kırmızı olan DOĞRU'dan YANLIŞ'a geçene kadar geçecek süreyi,
gösteriyor.
Değerleri ayrı ayrı değiştirerek kendiniz için ideal görüntüyü ayarlayabilirsiniz.
.
Rich (BB code):
Public hedef As Integer

Private Sub Worksheet_Change(ByVal Target As Range)
Dim StartTime As Double
If [Y15] = "DOĞRU" Then Exit Sub
If hedef <> [Y14] Then
    Const delay = 0.2: StartTime = Timer
    Do: Loop While Timer - StartTime < delay
    [Y15] = "DOĞRU"
    Const delay2 = 0.2: StartTime = Timer
    Do: Loop While Timer - StartTime < delay2
    hedef = [Y14]: [Y15] = "YANLIŞ"
End If
End Sub
 
Son düzenleme:
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Valla diyecek söz bulamıyorum, ellerine beynine sağlık Allah razı olsun hocam. Hayırlı akşamlar saygılarımla...
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
.
Eyvallah,
kolay gelsin.
.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Public hedef As Integer

Private Sub Worksheet_Calculate()
Dim StartTime As Double
If [q5] = "1" Then Exit Sub
If hedef <> [b6] Then
Const delay = 1: StartTime = Timer
Do: Loop While Timer - StartTime < delay
[q5] = "1"
Const delay2 = 0.000000000000001: StartTime = Timer
Do: Loop While Timer - StartTime < delay2
hedef = [b6]: [q5] = "0"
End If
End Sub




Public hedef As Integer

Private Sub Worksheet_Calculate()
Dim StartTime As Double
If [q7] = "1" Then Exit Sub
If hedef <> [e2] Then
[q7] = "1"
Const delay = 0.1
StartTime = Timer
Do
Loop While Timer - StartTime < delay
hedef = [e2]
[q7] = "0"
End If
End Sub

bu iki formül aynı sayfada nasıl birleştirilip kullanılır acaba böyle yazarsam hata veriyor. Yani aynı worksheet yazmak istiyorum. Yardımlarınız için teşekkür ederim.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Örnek belge ekleyip, belge içerisinde de ulaşmak istediğiniz sonucu, hücrelerdeki değerlerin değişme şeklini (elle yazarak/formül ile/dış bağlantıdan veri alarak .... gibi) ve ne olduğunda hangi sonucu almak istediğinizi, muhtemel tüm seçenekleri gözönünde bulundurarak açıklayınız.

Bu şekilde destek almanız ve sonuca ulaşmanız güç bence.
.
 
Üst