Bu hata nasıl giderilir?

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Günaydın Arkadaşlar,
H7:K9 arasında sıralı yazarken her doğru artış için M7 hücresini, her yanlış artış için N7 hücresini 1 arttırıp, yanlışta son yazılanın üzerinde bekleme yapmasını oluşturmaya çalıştım. Her seferinde excel donuyor. Neden olabilir? Oluşturabildiğim makro kod içindedir.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    ActiveSheet.Unprotect "111"
    If [C1] = "" Or [C1] = 0 Then
        [N7] = [N7] + 1
        MsgBox "Yanlış"
'        Target.Offset(0, -1).Select
'        Target.ClearContents
      Else
        If [D1] = 1 Then
            MsgBox "Call Albasa"
          Else
            [M7] = [M7] + 1
            MsgBox "Doğru"
        End If
    End If
    ActiveSheet.Protect "111"
End Sub
Saygılarımla
 

Ekli dosyalar

Son düzenleme:

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(Range("H7:K9"), Target) Is Nothing Then
        Application.EnableEvents = False
        ActiveSheet.Unprotect "111"
        If [C1] = "" Or [C1] = 0 Then
            [N7] = [N7] + 1
            MsgBox "Yanlış"
    '        Target.Offset(0, -1).Select
    '        Target.ClearContents
          Else
            If [D1] = 1 Then
                MsgBox "Call Albasa"
              Else
                [M7] = [M7] + 1
                MsgBox "Doğru"
            End If
        End If
        ActiveSheet.Protect "111"
        Application.EnableEvents = True
    End If
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Muzaffer Ali,
Teşekkür ederim
İyi çalışmalar
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Muzaffer Ali,
Sayfada hiç sayı yokken H7 ve I7 hücrelerini doldurabilmem lazım. Bu durumda dolduramıyorum. Yardımcı olursan sevinirim.
Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kodlar buna engel değil.
Doldurmanıza engel olan nedir?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
Hücreleri boşaltıp denerseniz, fark edersiniz. Ben de sizin gibi düşünüyordum.
Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
H7:K9 arası hücrelerin tamamını siliyorum. Sonra H7 ve I7 hücrelerine rakam yazıyorum, hiçbir sorunla karşılaşmıyorum.
Eksik yada yanlış yaptığım bir şey var mı?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
H7 ye rakam yazdığınızda Yanlış mesajı gelmiyor mu?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Dediniz ki;
Sayfada hiç sayı yokken H7 ve I7 hücrelerini doldurabilmem lazım.
Buna göre cevap yazmıştım. Yani H7 ve I7 hücrelerini doldurmakta sıkıntı yok.

Siz H7:K9 arası boşken H7 hücresine bir rakam yazdığında "Doğru" mesajı vermesini istiyorsunuz doğru mu?

Eğer doğruysa "Doğru-Yanlış" mesajları neye göre geliyor-gelmeli belirtmelisiniz.
Hangi durumlarda "Doğru" hangi durumlarda "Yanlış" mesajı gelmesi gerekiyor?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Muzaffer Ali,
If Not Intersect(Range("J7:K7, H8:K9"), Target) Is Nothing Then
2. satırı yukarıdaki şekilde değiştirdim. H7:I7 ye yazarken karışmadı, ama bu sefer M7, N7 ye yazmalar ve mesajlar devre dışı kaldı. Sebebini anlamadım.
Dikkat ederseniz A1:E5 arasında fonksiyonlar var. Kontrolü C1 ve D1 hücreleri yapıyor. Saymaya da J7 hücresinden itibaren başlıyor.
İlginiz ve zahmetiniz için tekrar teşekkür ederim.
Saygılarımla
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Aşağıdaki konutu kullanmak tehlikelidir. Bilinçli kullanmak gerekir.

Application.EnableEvents = False

Eğer siz bu kod True değerini almadan makroyu durdurursanız sayfa olayları pasif duruma geçer. Yani çalışmaz. Aşağıdaki gibi bir sub ile tekrar aktif hale getirebilirsiniz.

Sub Test()
Application.EnableEvents =True
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Her iki komut ta yukarıdaki makroda var
Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Ben hala hangi durumda "Evet" mesajı almanız gerektiğini anlamadım.
A, B, C, D, E sütunlarındaki formüllerde bir değişiklik yapılması gerekiyor ama kriterler hakkında bir şey söylemediğiniz için sorunu çözemiyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,307
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayın Korhan Hocam,
Her iki komut ta yukarıdaki makroda var
Saygılarımla
Elbette var. Ama siz bir şekilde kodu tamamlanmadan yarıda keserseniz son satır devreye girmemiş olabilir. Bu durumda daha sonra yapacağınız veri girişlerinde kod çalışmayacaktır. Bunu ifade etmek istemiştim.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Sanırım haklısınız, ben de bunun üzerinde çalışıyordum. O noktayı halledemediği için kodun gerisi çalışmıyordur belki de.
İlginize teşekkür ederim
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Korhan Hocam,
Uyarınız için tekrar teşekkür ederim.
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,794
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Muzaffer Ali Arkadaşım,
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("J7:K7, H8:K9"), Target) Is Nothing Then
        Sheets("Sayilar").ScrollArea = "Sayilar!H7:K10"
        Application.EnableEvents = False
        If [H7] = "" Or [I7] = "" Then GoTo 99
        If [C1] = "" Or [C1] = 0 Then
            [N7] = [N7] + 1
            MsgBox "Olmadı !!!"
            Target.Offset(0, 0).Select
            Target.ClearContents
          Else
            If [D1] = 1 Then
                Call PlaySound
                Call Albasa
              Else
                [M7] = [M7] + 1
                Call PlaySound
            End If
        End If
99:
        Application.EnableEvents = True
    End If
End Sub
Yukarıdaki değişiklikleri yaptım. İstediğim gibi çalışıyor. İlginize tekrar teşekkür ederim.
Saygılarımla
 
Üst