Soru BİRDEN ÇOK Worksheet_Change kullanımı

Katılım
9 Aralık 2006
Mesajlar
134
Excel Vers. ve Dili
microsoft office professional plus 2010 TR
değerli üstatlarım; aşağıda ki kodda hata nerde birinci şart için kod çalışırken ikinci şart için kod çalışmıyor. Yardımcı olur musunuz.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B9:B4000")) Is Nothing Then Exit Sub
Call DÖNÜŞTÜR
If Intersect(Target, Range("CX8")) Is Nothing Then Exit Sub
Call TOPLA
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B9:B4000")) Is Nothing Then
        Call DÖNÜŞTÜR
    ElseIf Not Intersect(Target, Range("CX8")) Is Nothing Then
        Call TOPLA
    End If
End Sub
 
Katılım
9 Aralık 2006
Mesajlar
134
Excel Vers. ve Dili
microsoft office professional plus 2010 TR
Merhaba.
Bunu da denedim lakin 2. kodu çalıştırmıyor. 2 kod manuel çalışıyor lakin change olayıyla tetiklenmiyor.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B9:B4000")) Is Nothing Then
        Call DÖNÜŞTÜR
    ElseIf Not Intersect(Target, Range("CX8")) Is Nothing Then
        Call TOPLA
    End If
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu yeniden deneyin.
Mesajların çalıştığını göreceksiniz.
Sorun muhtemelen DÖNÜŞTÜR ve TOPLA kodlarında olmalı.

Eğer sorunu bulamazsanız dosyanızı ekleyin kontrol edelim.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B9:B4000")) Is Nothing Then
        MsgBox "DÖNÜŞTÜR çalışacak."
        Call DÖNÜŞTÜR
    ElseIf Not Intersect(Target, Range("CX8")) Is Nothing Then
        MsgBox "TOPLA çalışacak."
        Call TOPLA
    End If
End Sub
 
Katılım
9 Aralık 2006
Mesajlar
134
Excel Vers. ve Dili
microsoft office professional plus 2010 TR
Aşağıdaki kodu yeniden deneyin.
Mesajların çalıştığını göreceksiniz.
Sorun muhtemelen DÖNÜŞTÜR ve TOPLA kodlarında olmalı.

Eğer sorunu bulamazsanız dosyanızı ekleyin kontrol edelim.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B9:B4000")) Is Nothing Then
        MsgBox "DÖNÜŞTÜR çalışacak."
        Call DÖNÜŞTÜR
    ElseIf Not Intersect(Target, Range("CX8")) Is Nothing Then
        MsgBox "TOPLA çalışacak."
        Call TOPLA
    End If
End Sub
kusura bakmayın benim izah konusunda bir hatam var. Aslında kodlarınız çalışıyor.
CX8 hücresi CN9;CW.... hücrelerindeki değerlerin toplamına göre değişiyor çalışmama sebebi bu imiş.
Benim işim son satırdaki cn ve cw sutunları arasında bir değer değişince çalışan bir change olayı.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Soruyu tekrar sorar mısınız?
Hangi hücrelerde değişiklik yaptığınızda hangi kodlar çalışsın?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kodlara bakarak aslında çözebileceğiniz bir konu bu.

If Not Intersect(Target, Range("B9:B4000")) Is Nothing Then

Satırında B9 ile B4000 arasında bir değişiklik olduğunda çalışıyorsa siz burada B9:B4000 kısmını değiştirmeniz gerekiyor

B9:B4000 yerine
CN9:CW4000 yazabilirsiniz.

Satır sınırlaması olmadan tüm satırlarda çalışmasını isterseniz
CN:CW yazmalısınız.
 
Son düzenleme:
Katılım
9 Aralık 2006
Mesajlar
134
Excel Vers. ve Dili
microsoft office professional plus 2010 TR
Kodlara bakarak aslında çözebileceğiniz bir konu bu.

If Not Intersect(Target, Range("B9:B4000")) Is Nothing Then

Satırında B9 ile B4000 arasında bir değişiklik olduğunda çalışıyorsa siz burada B9:B4000 kısmını değiştirmeniz gerekiyor

B9:B4000 yerine
CN9:CW4000 yazabilirsiniz.

Satır sınırlaması olmadan tüm sütunlarda çalışmasını isterseniz
CN:CW yazmalısınız.
bazen çözüm çok basit olabiliyor çözümsüz yapan belki olmazı istemiş olmam son satır için çalışsın istemiştim buda işi görür .Teşekkürler
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Sadece ilk boş hücrede çalışması için.

Kod:
Dim Son As Long

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("CN" & Son & ":CW" & Son)) Is Nothing Then
        Call DÖNÜŞTÜR
    ElseIf Not Intersect(Target, Range("CX8")) Is Nothing Then
        Call TOPLA
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Son = Cells(Rows.Count, Target.Column).End(xlUp).Row + 1
End Sub
Sadece son dolu hücrede çalışmasını isterseniz "+ 1" i silin
 
Üst