Hücre Silme Engelleme

hakki83

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

Bir hücredeki verileri (örnek B2), sayfa koruma özelliği dışında, kodlar ile silmeyi engellemeyi yapabilir miyiz?

Teşekkürler.
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
454
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Burada detaylı bilgi var

 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
566
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Teşekkürler fakat verdiğiniz linkte sayfa koruma kullanılmış.
Sayfa koruma olmadan sadece kodlarla yapabiliyor muyuz, bunu öğrenmek istemiştim.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
Teşekkürler fakat verdiğiniz linkte sayfa koruma kullanılmış.
Sayfa koruma olmadan sadece kodlarla yapabiliyor muyuz, bunu öğrenmek istemiştim.
dener misiniz

Kod:
Dim prevValue As Variant

Private Sub worksheet_SelectionChange(ByVal target As Range)

    prevValue = target.Value
End Sub

Private Sub worksheet_change(ByVal target As Range)

If Len(prevValue) = 0 Then Exit Sub

    If target.Row > 1 And target.Column > 1 Then

        If target.Value <> prevValue Then
            target.Value = prevValue


            MsgBox "Düzenlemenize izin verilmiyor!", vbCritical + vbOKOnly

        End If

    End If

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,079
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Önerilen kod çoklu hücre işlemlerinde sağlıklı sonuç vermeyecektir.
 

hakki83

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

Kod:
Dim prevValue As Variant

Private Sub worksheet_SelectionChange(ByVal target As Range)

    prevValue = target.Value
End Sub

Private Sub worksheet_change(ByVal target As Range)

If Len(prevValue) = 0 Then Exit Sub

    If target.Row > 1 And target.Column > 1 Then

        If target.Value <> prevValue Then
            target.Value = prevValue


            MsgBox "Düzenlemenize izin verilmiyor!", vbCritical + vbOKOnly

        End If

    End If

End Sub
Tamer42 hocam teşekkürler.
Tüm sayfa değil de sadece B2 hücresinde (silme engelleme) geçerli olacak şekilde yapar mısınız?
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
Tamer42 hocam teşekkürler.
Tüm sayfa değil de sadece B2 hücresinde (silme engelleme) geçerli olacak şekilde yapar mısınız?
IF koşulunu

Kod:
If target.Row =2  And target.Column =2 Then
şeklinde düzenleyebilirsiniz.

yada kodun başına

Kod:
If Intersect(target, [B2]) Is Nothing Then Exit Sub
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
566
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Teşekkürler Tamer42 hocam.
Bilgisayara geçer geçmez hemen deneyeceğim.
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
566
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Hocam yalnız şunu fark ettim.
Kodunuzda birden fazla if ile başlayan satır var. Hangisini değiştirmem gerekiyor ?
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
566
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
If target.Row > 1 And target.Column > 1 Then
Tamer42 hocamız ilginiz için teşekkürler. Olmuştur fakat sadece B2’yi değil de birden fazla hücreyi seçince, B2 hücresi silinebiliyor. Bunu önleyebilir miyiz acaba?

(Bir de hocam sadece öğrenmek için, hani msgbox satırının en sonunda vbOkOnly kodunun vazifesi nedir?)
 
Son düzenleme:

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,151
Excel Vers. ve Dili
Office 2013 İngilizce
Tamer42 hocamız ilginiz için teşekkürler. Olmuştur fakat sadece B2’yi değil de birden fazla hücreyi seçince, B2 hücresi silinebiliyor. Bunu önleyebilir miyiz acaba?

(Bir de hocam sadece öğrenmek için, hani msgbox satırının en sonunda vbOkOnly kodunun vazifesi nedir?)

worksheet_SelectionChange olayını aşağıdaki gibi düzenleyip çoklu seçimi engelelyebilirsiniz

Kod:
Private Sub worksheet_SelectionChange(ByVal target As Range)

   If target.Count > 1 Then
      MsgBox "Üzgünüz, birden fazla seçime izin verilmiyor!.", vbCritical
      ActiveCell.Select
   End If

    prevValue = ActiveCell.Value
    
End Sub
 
Üst