Belli Alana Veri Girince Otomatik Silinmesi

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
534
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhaba Hocalarımız.

Yakın zamanda bir konuyu incelemiştim. Bir üye, bir excel sayfasındaki, belli bir alandaki hücrelere veri girişini engelleyen bir basit sade bir kod paylaşmış ve sanıyorum üzerine soru sormuştu.

Hatta üyenin paylaştığı kodları da denemiştim.
O alandaki hücreye bir şey yazıldığında siliniyordu.
(Veri doğrulama olayı değildi)

Şu an aramama rağmen konuyu da bulamadım, kodları da sanıyorum kendime kaydetmemişim.

Örnek olarak K2: ile AT1000 alanına veri girişini engelleyecek kodları veya göze çarptıysa o konunun linkini paylaşır mısınız?
 
Katılım
20 Şubat 2007
Mesajlar
650
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
If Not Intersect(Target, Range("K2:AT100")) Is Nothing Then
    Application.Undo
    MsgBox "Bu hücreye veri girişi kısıtlanmıştır!", vbCritical
End If
Application.EnableEvents = True

End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,460
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Bu, Worksheet'in Change olayı kullanılarak yapılabilir. Aşağıdaki kod, K2: ile AT1000

aralığındaki hücrelere yapılan herhangi bir veri girişini otomatik olarak silecek ve böylece kullanıcıların bu alana veri girmesini engelleyecektir.

Kod:
  1. Excel VBA editörünü açın (Alt + F11).
  2. Projeler penceresinde, veri girişini engellemek istediğiniz sayfaya çift tıklayın (örneğin, Sheet1).
  3. Aşağıdaki kodu ilgili sayfa modülüne ekleyin.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim IntersectRange As Range
Dim WatchRange As Range

' Engellenecek hücre aralığı
Set WatchRange = Me.Range("K2:AT1000")

' Değişiklik yapılan hücreler ile engellenecek aralığın kesişimini al
Set IntersectRange = Intersect(Target, WatchRange)

' Eğer kesişim varsa, değişiklikleri geri al
If Not IntersectRange Is Nothing Then
Application.EnableEvents = False
IntersectRange.ClearContents
Application.EnableEvents = True
MsgBox "Bu hücrelere veri girişi engellenmiştir.", vbExclamation
End If
End Sub

Açıklama:
  • Target: Değişiklik yapılan hücreleri belirtir.
  • WatchRange: Veri girişini engellemek istediğiniz hücre aralığını belirtir (K2

    ).
  • Intersect: Değişiklik yapılan hücreler ile engellenecek aralığın kesişimini belirler.
  • ClearContents: Eğer kesişim varsa, değişiklik yapılan hücrelerin içeriğini temizler.
  • Application.EnableEvents: Bu komutlar, olayların tekrar tetiklenmesini önler ve döngüleri engeller.
Bu kodu kullanarak, K2: ile AT1000

aralığındaki hücrelere veri girişi yapılmasını engelleyebilirsiniz. Herhangi bir veri girilmeye çalışıldığında, bu girişler otomatik olarak silinecek ve bir uyarı mesajı gösterilecektir.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
534
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
İki kod da olmuştur. Teşekkürler, emeğinize sağlık.
 
Üst