Kopyala Yapıştır Engelleme

NIGRA

Altın Üye
Katılım
12 Şubat 2021
Mesajlar
111
Excel Vers. ve Dili
Excel2010
Kod:
Private Sub Workbook_Deactivate()
    Application.OnKey "^c"
    Application.OnKey "^v"
    For Each Copy In Application.CommandBars.FindControls(Id:=19)
    Copy.Enabled = Evn
    Next Copy
End Sub

Private Sub Workbook_activate()
    Application.OnKey "^c", ""
    Application.OnKey "^v", ""
    For Each Copy In Application.CommandBars.FindControls(Id:=19)
    Copy.Enabled = Evn
    Next Copy
End Sub

Bu kod ve benzeri türevleri mevcut forumumuzda daha önce paylaşılmış. Ancak ya modüle yada çalışma kitabına yapıştırılan türevi var. Buda dosyadaki tüm sayfaları etkiliyor.

Bunu sadece istediğim sayfalar özelinde nasıl değiştirebilirim?

Private Sub Worksheet_activate() diye başladım koda ve sayfanın code kısmına yapıştırdım ama olmadı.

Yardımlarınızı rica ediyorum.
 

Suskun

Altın Üye
Altın Üye
Katılım
27 Kasım 2006
Mesajlar
292
Excel Vers. ve Dili
Excel 19
Sayfanın kod kısmında deneyin

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.CutCopyMode = False
End Sub
 

Suskun

Altın Üye
Altın Üye
Katılım
27 Kasım 2006
Mesajlar
292
Excel Vers. ve Dili
Excel 19
1. Aşağıdaki kodları Standart Makro sayfasına yapıştırın.
Kod:
Option Explicit

 
Sub ToggleCutCopyAndPaste(Allow As Boolean)
     'Kes, kopyala, yapıştır ve özel menü öğelerini etkinleştir / devre dışı bırak
    Call EnableMenuItem(21, Allow) ' Kes
    Call EnableMenuItem(19, Allow) ' Kopyala
    Call EnableMenuItem(22, Allow) ' Yapıştır
    Call EnableMenuItem(755, Allow) ' Özel yapıştır
    
     'Sürükle ve bırak özelliğini devre dışı bırak / etkinleştir
    Application.CellDragAndDrop = Allow
    
     'Kes, kopyala, yapıştır ve yapıştır özel kısayol tuşlarını etkinleştir / devre dışı bırak
    With Application
        Select Case Allow
        Case Is = False
            .OnKey "^c", "CutCopyPasteDisabled"
            .OnKey "^v", "CutCopyPasteDisabled"
            .OnKey "^x", "CutCopyPasteDisabled"
            .OnKey "+{DEL}", "CutCopyPasteDisabled"
            .OnKey "^{INSERT}", "CutCopyPasteDisabled"
        Case Is = True
            .OnKey "^c"
            .OnKey "^v"
            .OnKey "^x"
            .OnKey "+{DEL}"
            .OnKey "^{INSERT}"
        End Select
    End With
End Sub
 
Sub EnableMenuItem(ctlId As Integer, Enabled As Boolean)
     'Belirli menü öğesini etkinleştir / devre dışı bırak
    Dim cBar As CommandBar
    Dim cBarCtrl As CommandBarControl
    For Each cBar In Application.CommandBars
        If cBar.Name <> "Clipboard" Then
            Set cBarCtrl = cBar.FindControl(ID:=ctlId, recursive:=True)
            If Not cBarCtrl Is Nothing Then cBarCtrl.Enabled = Enabled
        End If
    Next
End Sub
 
Sub CutCopyPasteDisabled()
     'Kullanıcıya işlevlerin devre dışı bırakıldığını bildir
    MsgBox "Bu çalışma sayfasında kesme, kopyalama ve yapıştırma devre dışı bırakıldı!!"
End Sub
2 .Aşağıdaki kodları engellemek istediğniz Sayfanın makro kısmına ekle

Kod:
Option Explicit

Private Sub Worksheet_Activate()
   Call ToggleCutCopyAndPaste(False)
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
 Call ToggleCutCopyAndPaste(False)
End Sub

Private Sub Worksheet_Deactivate()
Call ToggleCutCopyAndPaste(True)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Call ToggleCutCopyAndPaste(False)
End Sub
 
Katılım
18 Nisan 2005
Mesajlar
62
Excel Vers. ve Dili
Office 2010 - Türkçe
1. Aşağıdaki kodları Standart Makro sayfasına yapıştırın.
Kod:
Option Explicit


Sub ToggleCutCopyAndPaste(Allow As Boolean)
     'Kes, kopyala, yapıştır ve özel menü öğelerini etkinleştir / devre dışı bırak
    Call EnableMenuItem(21, Allow) ' Kes
    Call EnableMenuItem(19, Allow) ' Kopyala
    Call EnableMenuItem(22, Allow) ' Yapıştır
    Call EnableMenuItem(755, Allow) ' Özel yapıştır
   
     'Sürükle ve bırak özelliğini devre dışı bırak / etkinleştir
    Application.CellDragAndDrop = Allow
   
     'Kes, kopyala, yapıştır ve yapıştır özel kısayol tuşlarını etkinleştir / devre dışı bırak
    With Application
        Select Case Allow
        Case Is = False
            .OnKey "^c", "CutCopyPasteDisabled"
            .OnKey "^v", "CutCopyPasteDisabled"
            .OnKey "^x", "CutCopyPasteDisabled"
            .OnKey "+{DEL}", "CutCopyPasteDisabled"
            .OnKey "^{INSERT}", "CutCopyPasteDisabled"
        Case Is = True
            .OnKey "^c"
            .OnKey "^v"
            .OnKey "^x"
            .OnKey "+{DEL}"
            .OnKey "^{INSERT}"
        End Select
    End With
End Sub

Sub EnableMenuItem(ctlId As Integer, Enabled As Boolean)
     'Belirli menü öğesini etkinleştir / devre dışı bırak
    Dim cBar As CommandBar
    Dim cBarCtrl As CommandBarControl
    For Each cBar In Application.CommandBars
        If cBar.Name <> "Clipboard" Then
            Set cBarCtrl = cBar.FindControl(ID:=ctlId, recursive:=True)
            If Not cBarCtrl Is Nothing Then cBarCtrl.Enabled = Enabled
        End If
    Next
End Sub

Sub CutCopyPasteDisabled()
     'Kullanıcıya işlevlerin devre dışı bırakıldığını bildir
    MsgBox "Bu çalışma sayfasında kesme, kopyalama ve yapıştırma devre dışı bırakıldı!!"
End Sub
2 .Aşağıdaki kodları engellemek istediğniz Sayfanın makro kısmına ekle

Kod:
Option Explicit

Private Sub Worksheet_Activate()
   Call ToggleCutCopyAndPaste(False)
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call ToggleCutCopyAndPaste(False)
End Sub

Private Sub Worksheet_Deactivate()
Call ToggleCutCopyAndPaste(True)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call ToggleCutCopyAndPaste(False)
End Sub

Merhaba
Bu kodları denildiği şekilde uyguladım fakat bir sorun ortaya çıktı, bu kodları uyguladığım «liste» sayfasının yanısıra çalıştığım diğer kitabların sayfalarına geçtiğimde buralarda da kod çalışarak kopyala yapıştırı iptal ediyor ben sadece liste sayfasında bu kodun çalışmasını istiyorum, yardımcı olur musunuz
 

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
789
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝2019 32 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝10 64 Bit 𝙏𝙍⎠
... «liste» sayfasının yanı sıra çalıştığım diğer kitapların sayfalarına geçtiğimde buralarda da kod çalışarak kopyala yapıştırı iptal ediyor ben sadece liste sayfasında bu kodun çalışmasını istiyorum ...
Merhaba, kodları doğru yere kopyaladığınızdan emin olun. Arkadaşımız, engellenmesini istediğiniz sayfanın kod kısmına yazmanızı belirtmiş. Eğer doğru yere yaptıysanız bırakın başka çalışma kitabını, başka sayfa da bile kodların çalışmaması gerekir.
Kontrol ediniz, iyi çalışmalar.

1. Aşağıdaki kodları Standart Makro sayfasına yapıştırın.
Kod:
...
2 .Aşağıdaki kodları engellemek istediğiniz Sayfanın makro kısmına ekle
Kod:
...
 
Katılım
18 Nisan 2005
Mesajlar
62
Excel Vers. ve Dili
Office 2010 - Türkçe
Resimden de görüleceği üzere makrosuz kitap etkin ve A2 hücresine ctrl + X yapılmış bu kitapta makro olmadığı halde makro çalışmış
 

Ekli dosyalar

Suskun

Altın Üye
Altın Üye
Katılım
27 Kasım 2006
Mesajlar
292
Excel Vers. ve Dili
Excel 19
Engelleme uyguladığınız sayfadan çıkmadan diğer açık Excel dosyaları ve sayfalarında Kopyala Yapıştır Sürükle bırak özelliklerini kullanamazsınız.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
615
Excel Vers. ve Dili
Microsoft 365
Merhaba;

Forumda ararken bu başlığı buldum. Bunun üzerinden sormak istiyorum.
Kes, kopyala, yapıştır için engelleme var.
Peki satır ekleme için engelleme var mı ?

Call EnableMenuItem(21, Allow) ' Kes
Call EnableMenuItem(19, Allow) ' Kopyala
Call EnableMenuItem(22, Allow) ' Yapıştır
Call EnableMenuItem(755, Allow) ' Özel yapıştır

Kes 21, kopyala 19 ise satır ekleme numarası nedir ?
 
Üst