Klavye tuşlarını kapamak

Katılım
7 Temmuz 2004
Mesajlar
48
Merhaba

Klavyeden ctrl+c ve ctrl+v yani kopyala-yapıştır tuşlarını makro ile iptal etmek mümkünmüdür?

Teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kod sanırım işinizi görür,bu kodu kopyalanmasını istemediğiniz sayfanın kod sayfasına kopyalayın. Tuşların kullanımını iptal etmez ama kopyalayıp yapıştırılmasına izin vermez.

[vb:1:e6ff3d0e7d]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
[/vb:1:e6ff3d0e7d]

Eğer aşağıdaki kodu ThisWorkbook sayfasına kopyalarsanız bu kez kitabın hiç bir sayfasında kopyalamaya izin vermeyecektir.
[vb:1:e6ff3d0e7d]Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub[/vb:1:e6ff3d0e7d]
 
Katılım
7 Temmuz 2004
Mesajlar
48
LeventM arkadasa gönülden teşekkürler...

Sayın LeventM bahsi geçen kodu her iki şekildede kullandım ancak klavyeden CTRL+C tuşu yinede çalıştı ve tabiki başka bir excel sayfasınada yapıştırma işlemi gerçekleşti. Ben sadece bu excel kitabında klavyeden kopyala-yapıştır tuşunu pasif hale getirilebilirmi ? Bunu kastetmiştim.sanırım çözümü yok galiba...

Teşekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki şekilde deneyin birde.

[vb:1:07a2d478b1]Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CopyObjectsWithCells = False
End Sub [/vb:1:07a2d478b1]
 
Katılım
7 Temmuz 2004
Mesajlar
48
yardımınız için teşekkürler, ancak bu şekildede olmadı...

Benim amacım şuydu...

herhangi bir excel sayfasından kopyalama yapılmasını engellemekti. menüler ve sağ tuşu iptal etmek mümkün oluyor ve geriye sadece klavyeden kopyala-yapıştır kalıyordu...Bu seçeneğide iptal etmek istemiştim...

İyi çalışmalar...
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
diğer önlemlerin yanına şunlarıda ekleyin


[vb:1:0c1e263ef2]
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.SendKeys ("{ESC}")
End Sub[/vb:1:0c1e263ef2]


ayrıca dosya açılışına
Application.OnKey "^c", ""
Application.OnKey "^v", ""

ve dosya kapanışına
Application.OnKey "^c"
Application.OnKey "^v"


bizim gibi paylaşımcı bir foruma böyle sorular tuhaf oluyor .proogramı değil içindeki bilgiyi bile paylaşmam diyorsunuz...printscreen'i engelleyemezsiniz nasılsa:)
 
Katılım
28 Şubat 2005
Mesajlar
707
Excel Vers. ve Dili
office 2007 (excel2007)English işte
office 2003 (excel2003)
Türkçe evde
günaydın;
aşağıdaki kodları deneyin

Kullanıcıların çalışma kitabını açtıklarında kesme/kopyalama ve yapıştırma komutlarını kullanamaz.
Sub DisableCutAndPaste()
EnableControl 21, False ' cut
EnableControl 19, False ' copy
EnableControl 22, False ' paste
EnableControl 755, False ' pastespecial
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""
Application.CellDragAndDrop = False
End Sub
' BU KOD KISITLAMALARI AKTİF YAPAR
Sub EnableCutAndPaste()
EnableControl 21, True ' cut
EnableControl 19, True ' copy
EnableControl 22, True ' paste
EnableControl 755, True ' pastespecial
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"
Application.CellDragAndDrop = True
End Sub

Sub EnableControl(Id As Integer, Enabled As Boolean)
Dim CB As CommandBar
Dim C As CommandBarControl
For Each CB In Application.CommandBars
Set C = CB.FindControl(Id:=Id, recursive:=True)
If Not C Is Nothing Then C.Enabled = Enabled
Next
End Sub
bunlarıiptal ettiniz ama farklı kaydedi engellemediniz. bunun içinde aşağıdaki gibi kullanın
Aşağıdaki kod kullanıcının kullanmakta olduğu dosyasını (farklı kaydet) yapmasını engeller.
'KOD Thisworkbook'a yazılacak
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
Cancel = True'False farklı kaydede izin verir.
End If
End Sub

not: bu kodlar syn NURZİYA HİÇDURMAZ ' aittir
kolay gelsin
farklı kaydedi engellemek için deaşağıdaki kodları kullanın
 
Katılım
7 Temmuz 2004
Mesajlar
48
Her 2 çözüm için çok teşekkürler...problem çözüldü ancak ara ara şöyle bir sorun oluşuyor. Kullanılan dosyada bir takım menuler kapanıyor fakat diğer excel dosyalarınıda etkiliyor yani sadece çalışılan dosyada kapatmak istiyorum.This workbook kısmına yazdım kodları ve istenilen oluyor ancak konu ile alakasız diğer excel dosyalarıda aynı şekilde etkileniyor.Dikkat ettim eğer kodların olduğu dosyayı ilk açarsam sanki sorun olmuyor gibi ama son kullanıcı tabiki buna her seferinde dikkat edemez.Bunu nasıl engelleyebilirim? (Yani kodlar sadece ilgili dosyada çalışsın.)

NOT : Bu arada bir eleştiriye cevap vereyim."Paylaşımcı bir sitede niye bu gizlilik" diye dane arkadaş yazmış.Benim gizlediğim programcılık açısından bir konu değil sadece benim verdiğim bilgileri hizmet olarak değilde ticarete dökmek isteyen arkadaşlara bir önlem olarak bunu yapmak istiyorum.

Teşekkürler,
 
Üst