Avatar billede A-J Nybegynder
26. december 2012 - 18:35 Der er 2 kommentarer og
1 løsning

Deaktivere Klip og Indsæt samt Kopier og Indsæt

Hej

Jeg har et regneark som en række brugere skal anvende. Da anvendelse af klip og indsæt samt kopier og indsæt kan ødelægge en række af de formler og funktionaliteter der er i arket, så ville jeg gerne fjerne muligheden herfor.

Jeg har søgt på nettet og fundet følgende makroer:

********************************************************
Indsættes i "Module1" (eller lign.):
Option Explicit

Sub ToggleCutCopyAndPaste(Allow As Boolean)
    'Activate/deactivate cut, copy, paste and pastespecial menu items
    Call EnableMenuItem(21, Allow) ' cut
    Call EnableMenuItem(19, Allow) ' copy
    Call EnableMenuItem(22, Allow) ' paste
    Call EnableMenuItem(755, Allow) ' pastespecial
   
    'Activate/deactivate drag and drop ability
    Application.CellDragAndDrop = Allow
   
    'Activate/deactivate cut, copy, paste and pastespecial shortcut keys
    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)
    'Activate/Deactivate specific menu item
    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()
    'Inform user that the functions have been disabled
    MsgBox "Sorry!  Cutting, copying and pasting have been disabled in this workbook!"
End Sub

**********************************************
Indsættes i "Denne_projektmappe":
Option Explicit

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

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call ToggleCutCopyAndPaste(True)
End Sub

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

Private Sub Workbook_Open()
    Call ToggleCutCopyAndPaste(False)
End Sub
*********************************************

Dette løser delvis opgaven. Men det er stadig muligt at anvende ikonerne i menu-fanen "Startside" og gruppen "Udklipsholder". Hvordan får jeg dette deaktiveret (og aktiveret igen, når filen lukkes)?

Skal siges, at jeg ikke er nogen makro-haj.

På forhånd tak
Avatar billede KurtOA Praktikant
27. december 2012 - 17:13 #1
Hej A-J.

Har brugt denne kode med held nogle gange.
Placeres i modulet: "Thisworkbook" og "reagerer" hvis der forsøges kopieret eller indsat i filen.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

If Application.CutCopyMode = xlCopy Then
MsgBox "Funktionerne: Klip, Kopier og Indsæt er ikke tilgængelige i denne Excelfil", vbInformation
End If


If Application.CutCopyMode = xlCut Then
MsgBox "Funktionerne: Klip, Kopier og Indsæt er ikke tilgængelige i denne Excelfil", vbInformation
End If

' Denne Renser  "klippebordet".....
Application.CutCopyMode = False

End Sub

mvh Kurt
Avatar billede A-J Nybegynder
27. december 2012 - 19:23 #2
Super, sammen med Application.CellDragAndDrop ser det ud til at løse problemet.

Takker

Sender du et svar til tildeling af point.
Avatar billede KurtOA Praktikant
27. december 2012 - 22:47 #3
Glad for at kunne hjælpe ;-)

mvh Kurt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester