Şarta bağlı VBA oluşturmak istiyorum

Katılım
30 Aralık 2022
Mesajlar
11
Excel Vers. ve Dili
türkçe 2016
Baktım bulamadım.Şöyle bir VBA kodu arıyorum.
Belirlenmiş hücrelere sıfır(0) haricinde bir değer girildiğinde yine önceden belirlenmiş başka bir hücreye o anki saati girmek istiyorum.Bir de bu kodu 30 farklı çalışma sayfasında da kullanmak istiyorum
Mesela :
A 23 hücresine sıfır haricinde bir değer girilirse .... C8 hücresine geçerli saati girsin
A 40 hücresine sıfır haricinde bir değer girilirse ... C 25 hücresine geçerli saati girsin
A 57 hücresine sıfır haricinde bir değer girilirse ... C 42 hücresine geçerli saati girsin ....

Yardımı olacak herkese şimdiden çook teşekkür ediyorum
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aşağıdaki kodu excel dosyanızın BuÇalışmaKitabı (ThisWorkbook) kod penceresi altına yapıştırırsanız dosyanın tüm sayfalarında çalışacaktır.
C++:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Value <> 0 Then
    If Not Intersect(Target, Range("A23,A40,A57")) Is Nothing Then
        Target.Offset(-15, 2) = Format(Now, "hh:mm")
    End If
End If
End Sub
 
Katılım
30 Aralık 2022
Mesajlar
11
Excel Vers. ve Dili
türkçe 2016
Aşağıdaki kodu excel dosyanızın BuÇalışmaKitabı (ThisWorkbook) kod penceresi altına yapıştırırsanız dosyanın tüm sayfalarında çalışacaktır.
C++:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Value <> 0 Then
    If Not Intersect(Target, Range("A23,A40,A57")) Is Nothing Then
        Target.Offset(-15, 2) = Format(Now, "hh:mm")
    End If
End If
End Sub
Bunu denedim ama çalışmadı.Ben şöyle bir kod kullanmıştım,çalıştı .Fakat bu kodu aynı sayfada 30 farklı hücrede kullanmak zorunda kaldığım için exceli baya bir yavaşlatıyor.Mümkünse Exceli yavaşlatmayacak bir kod yazabilir misiniz lütfen ?

Kullandığım kod :
If [A23].Value >= 0 Then [C8] = Format(Now, "hh:mm")
If [A23].Value <= 0 Then [C8] = Format(Now, "hh:mm")
If [A23].Value = 0 Then [C8] = ""
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Dediğimi birebir yapmadınız diye düşünüyorum. Ben deneyerek paylaşmıştım kodu.
Verdiğim kodu doğru yere yapıştırmamış olabilir msiniz?
 
Katılım
30 Aralık 2022
Mesajlar
11
Excel Vers. ve Dili
türkçe 2016
Tamamdır.Çalıştı.Kodu doğru yere ama yanlış Sub altına yazmışım :)
Kusura bakmayın size biraz zahmet verdim ama beni büyük bir sıkıntıdan kurtardınız
Çok teşekkür ederim.
 
Katılım
30 Aralık 2022
Mesajlar
11
Excel Vers. ve Dili
türkçe 2016
Dediğimi birebir yapmadınız diye düşünüyorum. Ben deneyerek paylaşmıştım kodu.
Verdiğim kodu doğru yere yapıştırmamış olabilir msiniz?
Merhaba .Yine ben.Sanırım sorunumla ilgili size eksik bilgi vermişim ben... Şöyle ki : Yazdığınız kod boş excel sayasında sorunsuz bir şekilde çalışıyor.Ama size yazmayı unuttuğum şey şu ; Başvuru yapılan hücreler (A23 , A40 , A57 vs ), birleştirilmiş 3 hücreden oluşuyor ve içerisinde formül var. Bir de başvuru yapılan hücrelerde para birimi sembolü var ($)
 
Üst