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

Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Hocalarım Merhaba

Bir hücrem var ve içinde formül var, değeri artıp azalınca başka bir hücreye 1 saniyeliğine "doğru" yazsın, 1 saniye bitiminde tekrar "yanlış"a dönsün.

a1 hücresi a2 hücresi
60 yanlış
50 oldu hemen doğru yazdı<<<<<<< doğru<<<<<<<1 saniye sonra tekrar eski haline döndü<<< yanlış

now time+timvalue kullanılacak galiba ve change formülü olmuyor, calculate çalışıyor, a2 hücresi içinde formül olduğu için, şimdiden teşekkürler ve saygılar.
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba.
Sayın @derisa963 'ün de belirttiği gibi bir örnek belge ekleyin ve belirttiğiniz formül dosya içerisinde olsun.
Worksheet_Change kodu ile işlem yaptırmak için, formül olan hücre değil, formülün etkilendiği hücreler üzerinden işlem yaptırılabilir.

Örnek belge özellikleri ve örnek belge yükleme yöntemine ilişkin kısa açıklama cevabımın altındaki İMZA bölümünde var.
.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Hocam excel yüklememiz yasak, çok çok özür kusura kalmayın, aşağıdaki formül bir nebze işimi görüyor, fakat ben y14 hücresindeki değer artıp azalınca değiştiği anda Y15 hücresine "doğru" yazan 1 saniye sonra ise "yanlış"a dönmesini istiyorum. yani Y14 değişmeden kendiliğinden 1 saniye sonra tekrar yanlışa dönsün. Yanlışta hücrenin değişmesini beklesin, tekrar değişirse 1 saniye doğru ardından tekrar yanlış. Anlayacağınız değişince 1 saniyelik anahtar lazım. excel olmadan anlatabildiğimi düşünüyorum, teşekkür ederim, saygılarımla. Not: bu aşağıdaki formülde change ile çalışmadı çünkü iç içe formül dolu, calculate mükemmel çalışıyor.

sayfaya yazılan

Public y14
Private Sub Worksheet_Calculate()

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

modül

Sub makronuz()
If Range("y14") = 0 Then Range("y15") = "1" Else Range("y15") = "0"
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
Cevabımın altındaki İMZA bölümünü okumamışsınız anlaşılan.
ALTIN ÜYE olmayanların örnek belge yükleme yöntemi orada yazılı.
Gerçek belgenizin bir kopyasını oluşturun, varsa özel bilgileri silin veya yerlerine, gerçek verileri temsil edebilecek özellikte anlamlı/tutarlı olmak üzere veriler yazın ve belgeyi FORUMa ekleyin.
.
 
Son düzenleme:
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
hocam orada bazı formüller var, tescilli hesap numaraları var imkanı yok, yani ücret karşılığı yaptırabileceğimiz birşeyi gösteremeyeceğimiz için birisine yaptıramıyorum sadece böyle kendi işimi kolaylaştıracak bir yol arıyorum. ilginiz için teşekkür ederim.
 
Katılım
19 Ağustos 2017
Mesajlar
174
Excel Vers. ve Dili
2016 TR
sayın @sdgssdgs ; Ömer Beyin Demek istediği orjinal verilerinizi dosyanızın kopyasında silip rastgele veriler ile adı üstünde "örnek dosya" yüklemeniz
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Sizi anlıyorum ama imkansız zaten o kadar şeyi silmem, yapabilecek olsam zaten yaparım.

y14 hücresi içinde =Topla(a1:a3) yazıyor, siz a1,a2,a3 hücrelerine değer verince doğal olarak y14 değişecek, işte o sıra 1 saniyeliğine y15 hücresinde doğru yazacak, 1 saniye bitiminde yanlışa dönecek. siz sonra a1 hücresini başka değer verin y14 yine anında değişti ve y14 değiştiği için y15'de bekleyen yanlış 1 saniyeliğine doğru yazıp tekrar yanlışa döndü. bunun için dosya eklememe gerek olmadığını düşüyorum, çok basit dille anlatmış olmalıyım. Amacım sizi uğraştırmak değil, kusura kalmayın.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,338
Excel Vers. ve Dili
2019 TR
Merhaba,
Sizin sorunuza yakın olan bir soru Şartı süre ile geciktirmek başlıklı konuda geçiyor ve Sn. kulomer46 'nın #2 numaralı mesajda sunmuş olduğu kodu, sizin çalışma dosyanız için uyarladım (deneme yanılma şekilde oldu :) ), ilgili sayfanın kod bölüme ekleyip dener misiniz?
Kod:
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
Not : Belirttiğim konuda Sizinmiş zaten sonradan fark ettim :):):)
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
.
Örnek belgeden beklenen; soruyu/çözümü ilgilendiren hücrelerin gerçek belgedeki ile sayı/metin/tarih gibi özellikler bakımından aynı (gerçek bilgi veya gerçek bilgiyi temsil edebilecek nitelikte) ve gerçek belgedekiyle aynı konumda olmasıdır.
Ayrıca, belirttiğiniz formül de kendi hücresinde ve çalışır durumda olmalıdır.

Gerçek verilerinizin kimsenin işine yarayacağını sanmıyorum, zaten TC KİMLİK NO, TELEFON, ADRES gibi özel ve gerçek olma ihtimali yüksek olduğu kanaati oluşan bilgi içeren belge eklendiğinde bizler de örnek belgenin değiştirilmesini istiyor, belgeyi ekleyene ulaşamıyorsak da forum yöneticilerinden eklenen belgenin kaldırılmasını istiyoruz.

Sorunu/ihtiyacı olan başka bir üye için harcanacak zaman israf edilmiş oluyor ve örnek belge olmadığında; verilen cevabın ardından, "ya şöyle olursa", "bir de şu durum var", "şunu da ekleyebilir miyiz" yeni sorular geliyor ve gereksiz yazışmalar yapılıyor.
Kaldı ki; sorun yaşayan/ihtiyacı olan da sizsiniz değil mi?

Tercih sizin elbette.
.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
hocam yanlış yazmışım y14 değişince hemen doğru olsun 1 saniye doğru yazsın isteyecektim, neyse o yukarıdaki 1 tane timevalue silince istediğim oldu. Aynen böyle çalışacak çok mükemmel, yani istenilen bu, el ile girersek çalışıyor fakat iç içe formül olduğu için ve veri dışarıdan geldiği için change işe yaramıyor, bunu calculate formülü ile yaparsanız duacı kalacağım, şuan çok mutluyum. Allah razı olsun.

1 tane timevalue sildim istediğim oldu şimdi sadece aşağıdaki kodları calculate ile hesaplanırsa çalışacak. Bir de SUM kısmını anlamadım, onlar ne kodu.

Public a1, a2, a3
Private Sub worksheet_change(ByVal target As Range)
If target.Column = 1 Then
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
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Ömer hocam demek istediğinizi çok iyi anladım, bundan sonra dikkat ederim, anlayışınız ve yardımınız için teşekkür ederim. Sorunum çözülmeye yaklaştı, inşallah olacak Allah razı olsun.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Public y14
Private Sub worksheet_calculate()
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 Sub

Hocam böyle çalıştı güzel ama şu SUM ne olduğunu bilmiyorum onun yerine başka şey mi yazalım. "y14 değeri bir önceki değerinden farklı ise doğru gibi."
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Tekrar merhaba.
Aşağıdaki kod'u ilgili sayfanın kod bölümüne yapıştırarak deneyin.
NOT: Kod işlem sırasında Z1 hücresini kullanıyor. Gerçek belgenizde Z1 hücresi kullanılıyorsa; Z1'leri uygun bir hücre adresiyle değiştiriniz.
.
Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)
If [Y15] = "DOĞRU" Then Exit Sub
If [Z1] <> [Y14] Then
    [Y15] = "DOĞRU"
    Application.Wait Now + TimeValue("00:00:01")
    [Z1] = [Y14]
     [Y15] = "YANLIŞ"
End If
End Sub
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Calculate ekleyince çalıştı

Private Sub Worksheet_Calculate ()
If [Y15] = "DOĞRU" Then Exit Sub
If [Z1] <> [Y14] Then
[Y15] = "DOĞRU"
Application.Wait Now + TimeValue("00:00:01")
[Z1] = [Y14]
[Y15] = "YANLIŞ"
End If
End Sub

Hocam merhaba Allah razı olsun, change hata verdi excel kapattı defalarca, boş sayfada hata vermedi ama asıl excel dosyasında yaptı, calculate yazınca yapmadı çalıştı. Tekrar Allah razı olsun. Bana bu yeter ama 2 sorum olacak, zamanınız olursa cevap verebilirsiniz, uğraşmayın lütfen, elimdeki yeterli ama lazım olursa konudan kopmadan öğrenmek istiyorum.

1) zaman konusunda saniye değil 500 milisaniye kullanmak istersek, basit bir yöntem varmı? formülse uğraşmayalım.
2) başka hücrelerde kullanmak istersem, hücre isimlerini değiştirerek alt alta bu formülü aynı sayfaya eklesem çalışır mı?

zamanınız olursa cevaplabilirsiniz hiç acelesi yok, yeterince zahmet verdim siz hocalarıma tekrar 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
Daha önce de belirttiğim gibi, örnek belge olmadan verilen cevapların ardından beklenen durum oluştu.
Her neyse; denemeden cevap yazma gibi bir alışkanlığım yok.

Yaptığım uygulama ekteki belgelerde mevcut (örnek belge olduğunda da halledebilirim gibi bir sözüm yok elbette).
Belgelere, fareyle BURAYA tıklayarak da erişebilirsiniz.
EK NOT: Eklediğim belgeyi ve buna ilişkin harici erişim bağlantısını güncelledim => 16.09.2018 02:23
.
 

Ekli dosyalar

Son düzenleme:
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
İlginize ve bana göstermiştir olduğunuz sabırdan dolayı teşekkür ederim, gerçekten alkışı fazlasıyla hak ediyorsunuz. Problemim çözülmüştür sağlıcakla kalın...
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,338
Excel Vers. ve Dili
2019 TR
Merhaba Sn. sdgssdgs,
Sorunuzun çözülmesine sevindim :) .

y14 hücresi içinde =Topla(a1:a3) yazıyor, siz a1,a2,a3 hücrelerine değer verince doğal olarak y14 değişecek
"=SUM(R[-13]C[-24]:R[-11]C[-24])" Y14 hücresindeki =TOPLA(A1:A3) formülünün karşılığı. Gece deneme yanılma yaparken ekledim koda :) çalışınca da paylaşayım dedim :) .
Sn. Ömer BARAN 'ın ellerine sağlık, sunduğu çözüm için bende teşekkür ederim.
İyi çalışmalar.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Tekrar merhaba.

Son bir ilave yapayım.
Gönderdiğim örnek belgelerin her ikisinde veya hangi belgedeki yapıyı kullanacaksanız o begede,

ilgili sayfaların kod bölümüne; en üste Public hedef As Integer şeklinde bir satır ekleyip
ardından da mevcut kod blokundaki [Z1] 'lerin yerine hedef yazarsanız,

işlem için sayfada bir hücreyi (Z1 hücresi) araç olarak kullanmaya gerek kalmayacaktır.
.
 
Katılım
19 Mart 2013
Mesajlar
40
Excel Vers. ve Dili
türkçe 2010
Merhaba hocam bende şöyle bir geri dönüt vereyim, saniye olan bazen 1 saniye veya daha az fazla yapabiliyor ve excel kasıyor ama milisaniye olan muazzam, tekrar ellerinize sağlık, son dediğiniz karıştırmayayım sorunum mükemmel şekilde çözülmüş durumda iyi akşamlar...
 
Üst