Excel VBA Kod Çakışması Sorununu Çözme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Kısa Açıklama

Excel VBA Kod Çakışması Sorununu Çözme 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.

.
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst