• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Belli Alana Veri Girince Otomatik Silinmesi

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
567
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
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?
 
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
 
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.
 
İki kod da olmuştur. Teşekkürler, emeğinize sağlık.
 
Geri
Üst