Hallo Zusammen
ich habe Excel 2013 und möchte das kopieren von Zellen verhindern, da mir sonst meine bedingte Formatierungen die durch einen hinterlegten Kalender gesteuert werden, kaputt gehen.
Ich habe hier folgendes Makro für die VBA gefunden, nur leider funktioniert es nicht richtig.
In der Menüleiste oben links kann man immer noch kopieren und ausschneiden.
Ziel soll sein, dass die Nutzer die Zellen zwar auswählen und das Dropdown auswählen können, dann aber nicht die Zellen kopieren und in anderen Zellen einfügen können.
Wichtig wäre auch, das es nur in dieser Arbeitsmappe aktiv ist.
Danke schon einmal im Voraus
Gruß Micha
Sub Kopieren_Aktivieren()
'Tastenkombinationen einschalten
Application.OnKey "^x"
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"
'Drag & Drop wieder erlauben
Application.CellDragAndDrop = True
'Schaltflaechen in Menüleiste => Bearbeiten aktivieren
procControlEnableDisable 21, True ' Ausschneiden
procControlEnableDisable 19, True 'Kopieren
procControlEnableDisable 22, True 'Einfuegen
procControlEnableDisable 755, True 'Inhalte einfuegen
procControlEnableDisable 809, True 'Office-&Zwischenablage
End Sub
Sub Kopieren_Deaktivieren()
'Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""
'Drag & Drop ausschalten
Application.CellDragAndDrop = False
'Schaltflaechen in Menüleiste => Bearbeiten deaktivieren
procControlEnableDisable 21, False ' Ausschneiden
procControlEnableDisable 19, False 'Kopieren
procControlEnableDisable 22, False 'Einfuegen
procControlEnableDisable 755, False 'Inhalte einfuegen
procControlEnableDisable 809, False 'Office-&Zwischenablage
End Sub
Sub procControlEnableDisable(intId As Integer, _
bolStatus As Boolean)
Dim cmbSuche As CommandBar
Dim cmbcSteuerelement As CommandBarControl
On Error Resume Next
For Each cmbSuche In Application.CommandBars
Set cmbcSteuerelement = _
cmbSuche.FindControl(ID:=intId, recursive:=True)
If Not cmbcSteuerelement Is Nothing Then
cmbcSteuerelement.Enabled = bolStatus
End If
Next
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Kopieren_Aktivieren
End Sub
Private Sub Workbook_Open()
Kopieren_Deaktivieren
End Sub