excel vba kod çakışması

Kısa Açıklama

excel vba kod çakışması isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba
Worksheet change olayında kullandığım kodun, yine aşağıya yazdığım içerik temizle makrosu ile çakışması söz konusudur. Butona atadığım içerik temizle makrosunu çalıştırdığım zaman worksheet change kodundaki (If Target.Row > 46 And Target.Value <> "" Then) satırına işaret etmekte ve hata vermektedir.Bunun önüne geçmenin bir yöntemi varmıdır?

Kullanılan kodlar:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 46 And Target.Value <> "" Then
MsgBox "Sadece 45 satırda işlem yapabilirsiniz. "
Target.Value = Empty
Exit Sub
End If
say = WorksheetFunction.CountIf(Range("a2:a46"), Target)
If say > 1 Then
MsgBox "BU ÜRÜN DAHA ÖNCE LİSTEYE YAZILMIŞ.", vbCritical, "OBSESYONUR"
Target.Select
Target = ""
End If
End Sub

Sub iceriktemizle()
Range("A2:B45").Select
Selection.ClearContents
Range("A2").Select
End Sub
 
Ekli dosyalar
Merhaba, foruma hoşgeldiniz Sayın @obsesyonur .

İsteğinizle ilgili iki seçenek vereyim;
-- Seçenek1: Change kodunun en başına If Target.Count > 1 Then Exit Sub şeklinde bir satır ekleyebilirsiniz.
-- Seçenek2: Silme kodunun başına Application.EnableEvents = False ve sonuna da ...True şeklinde birer satır ekleyebilirsiniz.

Ayrıca; silme kodunuzda yer alan ...Select ibarelerine gerek yok. Bu nedenle ...Select satırlarını silmenizi öneriyorum.
İşlem yapacak kod satırını da Sheets("Sayfa1").Range("A2:B45").ClearContents olarak değiştirmenizde yarar var.

.
 
Merhaba, foruma hoşgeldiniz Sayın @obsesyonur .

İsteğinizle ilgili iki seçenek vereyim;
-- Seçenek1: Change kodunun en başına If Target.Count > 1 Then Exit Sub şeklinde bir satır ekleyebilirsiniz.
-- Seçenek2: Silme kodunun başına Application.EnableEvents = False ve sonuna da ...True şeklinde birer satır ekleyebilirsiniz.

Ayrıca; silme kodunuzda yer alan ...Select ibarelerine gerek yok. Bu nedenle ...Select satırlarını silmenizi öneriyorum.
İşlem yapacak kod satırını da Sheets("Sayfa1").Range("A2:B45").ClearContents olarak değiştirmenizde yarar var.

.
Ömer bey sunmuş olduğunuz önerileri çalışmama uygulayınca olumlu sonuç aldığımı bilmenizi ister,emeğiniz için teşekkür ederim.
 
Geri
Üst