Sadece İlk İşlemi Yapsın

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba Arkadaşlar,

Aşağıdaki kodu uyguluyorum. Yani B-C-D-E sütunlarına bir veri girildiğinde 1 sağındaki sütuna x 2 olarak kaydetsin diye. İlk işlemi güzel yapıyor ama şöyle bir sorun oluyor.
Diyelim B sütununa 100 yazdım. Kod C sütuna 200 yazıyor ama bu işlem D sütuna 400, E sütununa 800 olarak devam ediyor !

İstediğim sadece ilk işlemi olması ve diğer hücreleri tetiklememesi. Bunu nasıl yapmak lazım acaba ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then
If Target.Column < 5 Then
Target.Offset(0, 1) = Target.Offset(0, 0) * 2
End If
End If
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,209
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki gibi dener misiniz?

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column > 1 And Target.Column < 5 Then
        Application.EnableEvents = False
        Target.Offset(0, 1) = Target.Value * 2
        Application.EnableEvents = True
    End If
    
End Sub
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Necdet üstad, mükemmelsiniz. çok çok teşekkür ederim. Sağlıcakla kalın
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Necdet üstadım, peki 2 yerine C sütunundaki rakamla çarpmasını istesek nasıl yazmamız lazım ?
RC[5) yaptım olmadı :(
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,209
Excel Vers. ve Dili
Ofis 365 Türkçe
Necdet üstadım, peki 2 yerine C sütunundaki rakamla çarpmasını istesek nasıl yazmamız lazım ?
RC[5) yaptım olmadı :(
Peki C sütununda giriş olacaksa ne olacak? kodlar B, C ve D sütununda çalışıyor. Bu durumda C sütununda değişiklik olduğunda C nin karesini alacaktır. Doğru mu?

Kod şu halini alır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [B:D]) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Target.Offset(0, 1) = Target.Value * Cells(Target.Row, "C")
    Application.EnableEvents = True
    
End Sub
 
Üst