Satır silmeyi Engelleme

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Merhabalar. Gerekirse örnek dosya atarım ama yapmayı istediğim şeyi için gerek yok sanırım. Çalışma sayfamda tablo kullanmaktayım tablodaki bir veya aynı anda birden fazla satır seçip sağ tıklayarak sil dediğimde silmeden önce onay istemesini sağlamak istiyorum. Böyle birşey mümkünse yardımlarınızı bekliyorum. Şimdiden teşekkür ederim
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,297
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi bir çözüm hazırladım. Sanırım işinizi görecektir.

Dosyanızı kaydedin. Kapatıp açın. Sonra deneme yapın.

C++:
Option Explicit

Sub Auto_Open()
    Dim Sag_Tik_Ana_Menu, Sag_Tik_Sil_Menu, Sil_Alt_Menu
    Application.CommandBars("List Range Popup").Reset
    For Each Sag_Tik_Ana_Menu In Application.CommandBars("List Range Popup").Controls
        If Sag_Tik_Ana_Menu.ID = 31275 Then
            Set Sag_Tik_Sil_Menu = Sag_Tik_Ana_Menu
            For Each Sil_Alt_Menu In Sag_Tik_Sil_Menu.Controls
                If Sil_Alt_Menu.Index = 1 Then Sil_Alt_Menu.OnAction = "Silme_Onaylama_Sutun"
                If Sil_Alt_Menu.Index = 2 Then Sil_Alt_Menu.OnAction = "Silme_Onaylama_Satir"
            Next
        End If
    Next
End Sub

Sub Silme_Onaylama_Sutun()
    Dim Onay As Byte
    Onay = MsgBox("Seçtiğiniz sütun/sütunlar silinecektir!" & Chr(10) & Chr(10) & _
           "İşlemi onaylıyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2)
    If Onay = vbNo Then Exit Sub
    Application.CommandBars.ExecuteMso "TableColumnsDeleteExcel"
End Sub

Sub Silme_Onaylama_Satir()
    Dim Onay As Byte
    Onay = MsgBox("Seçtiğiniz satır/satırlar silinecektir!" & Chr(10) & Chr(10) & _
           "İşlemi onaylıyor musunuz?", vbCritical + vbYesNo + vbDefaultButton2)
    If Onay = vbNo Then Exit Sub
    Application.CommandBars.ExecuteMso "TableRowsDeleteExcel"
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Hocam cevabınız için teşekkür ederim bu makroyu nereye koymamız lazım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,297
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Boş bir modüle uygulayınız.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
hocam yeni modül açıp kodları modülün içine atıp sayfayı kaydedip kapatıp tekrar açtıktan sonra yapmam gereken bir işlem yoksa çalıştıramadım
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,297
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tablonuz üzerinde satır ya da sütun silmeyi deneyin.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
hocam ilginizden dolayı çok teşekkür ederim. tablom üzerinden satır yada sütün silmek istediğimde herhangi bir uyarı alamıyorum tam olarak nerede yanlış yaptığımı anlayamadım örnek dosya attım
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,297
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızı indirdim.
Açtım.
B10 hücresi üzerinde sağ tıkladım ve menü açıldı.
Sil-Tablo Satırları komutunu çalıştırdım. Aşağıdaki (2. resimdeki) uyarı geldi. Eveti seçip satırı sildim.

217406

217407
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
ben satır sayılarının olduğu yerden tüm satırı seçerek denemiştim buda ayrıca işime yaracaktır. peki buna tüm satırı dahil edemezmiyiz boş satırların önemi yok ama tabloya ait bir satırsa aynı uyarıyı gösterme şansımız varmı teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,297
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Soruyu soran olarak siz nasıl yaptınız açıkçası çok merak ettim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,297
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aklıma gelmedi değil...

Ama siz özellikle TABLO diye belirtince ben de tablo üzerindeki sağ tıklamaya yoğunlaştım.

Müsait olduğumda satır ve sütun sağ tıklamaları içinde koda ekleme yaparım.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
bu şekilde silme işlemini imkansız hale getiriyor. önceki şekilde olduğu gibi onay isteyecek şekilde ayarlama şansımız varsa daha işe yaracaktır.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Önceki kodu silip bunu yapıştırınız.
Kod:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cevap = MsgBox("Satır Silmek İstiyormusunuz?", vbCritical + vbYesNo, "Satır Silmek İstiyormusunuz?")
If Cevap = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Önceki kodu silip bunu yapıştırınız.
Kod:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cevap = MsgBox("Satır Silmek İstiyormusunuz?", vbCritical + vbYesNo, "Satır Silmek İstiyormusunuz?")
If Cevap = vbYes Then
Cancel = False
Else
Cancel = True
End If
End Sub
gayet güzel peki bunu excelin kendi sil seçeneğinden sonra yapabilirmiyiz. yani satırı seçip sağ tıklayıp sil dedikten sonra bu kodu çalıştırsak tamamdır.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Aklıma gelmedi değil...

Ama siz özellikle TABLO diye belirtince ben de tablo üzerindeki sağ tıklamaya yoğunlaştım.

Müsait olduğumda satır ve sütun sağ tıklamaları içinde koda ekleme yaparım.
@Korhan Ayhan hocam ilk kod modülde çalıştığından çalışma kitabımdaki tüm tablolarda çalıştırabiliirm. çok daha kullanışlı ona boş satır ve sütünları yoksayarak dolu tüm satırıda dahil edebilirmiyiz. teşekkürler
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu şekilde deneyiniz.
Kod:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = 1
If ActiveCell.Row = 2 Then Exit Sub
Cevap = MsgBox("Satır Silmek İstiyormusunuz?", vbCritical + vbYesNo, "Satır Silmek İstiyormusunuz?")
If Cevap = vbYes Then
sil = ActiveCell.Row
Range("b" & sil & ":" & "j" & sil).Delete
End If
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Bu şekilde deneyiniz.
Kod:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = 1
If ActiveCell.Row = 2 Then Exit Sub
Cevap = MsgBox("Satır Silmek İstiyormusunuz?", vbCritical + vbYesNo, "Satır Silmek İstiyormusunuz?")
If Cevap = vbYes Then
sil = ActiveCell.Row
Range("b" & sil & ":" & "j" & sil).Delete
End If
End Sub
merhaba ilginizden dolayı teşekkür ederim. tam olarak istediğim şey biraz daha farklı şuan herhangi bir hücrede sağ tıkladığımızda satırı silmek istiyormusunuz uyarısı çıkmaktadır. benim istediğim şey ise excelin orjinal sağ tık menüsündeki sil seçeneğini seçtiğimizde bu uyarıyı almaktır
@Korhan Ayhan hocamızın yazmış olduğu örnekteki kod daha kullanışlı görünüyor fakat oraya tüm satır seçimini eklemek gerekmektedir. teşekkür ederim
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Amaç kısa yoldan hedefe ulaşmaktır, araçların mahiyeti o kadar önem arzetmemesi gerekiyor diye düşünü-yorum.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
405
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Amaç kısa yoldan hedefe ulaşmaktır, araçların mahiyeti o kadar önem arzetmemesi gerekiyor diye düşünü-yorum.
Hocam benimde bir amacım var ve amacıma dilediğim şekilde ulaşmaya çalışıyorum. sizin belirlediğiniz yol bana göre yanlış olabilir ve bunu sizinle paylaştım sizin yazmış olduğunuz kod ile excel sayfasının herhangi bir yerinde sağ tıkladığımızda satırı silmek istiyormusunuz diye soru ekranı geliyor evet seçtiğimizde aktif satırı silmekte ve excel sağ tık menüsünü devre dışı bırakmakta yapmayı istediğim şeyi yükarıda belirtmiştim. yinede ilginiz ve emeğinizden dolayı çok teşekkür ederim
 
Üst