aus dem Archiv ( https://www.herber.de/forum/archiv/172to176/t173544.htm ) habe ich den nachfolgenden Code. Es kommt in der
Sub procControlEnableDisable(intId As Integer, bolStatus As Boolean)
wenn sie von der
Sub procKopierenAusschneidenAus()
mit
procControlEnableDisable 19, False 'Kopieren
aufgerufen wird,
an der in der Sub hervorgehobenen Stelle die Fehlermeldung: Laufzeitfehler -2147467259 (80004005) Die Methode Enabled für das Object _CommandBarButton ist fehlgeschlagen. Hilfe führt dann zu Automatisierungsfehler 440.
Sub procControlEnableDisable(intId As Integer, bolStatus As Boolean)
Dim cmbSuche As CommandBar
Dim cmbcSteuerelement As CommandBarControl
For Each cmbSuche In Application.CommandBars
Set cmbcSteuerelement = _
cmbSuche.FindControl(ID:=intId, recursive:=True)
If Not cmbcSteuerelement Is Nothing Then
cmbcSteuerelement.Enabled = bolStatusEnd If
Next
End Sub
Wer kann mir da helfen? Nachfolgend der komplette Code.
Übrigens fiel mir auf dass bei mir im Kontext der rechten Maustaste "Zellen löschen" deaktiviert ist, wie schalte ich das wieder ein?
Dankeschön
Reinhard
In "DieseArbeitsmappe" steht:
Option Explicit
Private Sub Workbook_Open()
procKopierenAusschneidenAus
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
procKopierenAusschneidenEin
End Sub
Sub testaus()
procKopierenAusschneidenAus
End Sub
Sub testein()
procKopierenAusschneidenEin
End Sub
Im "Modul1" steht:
Option Explicit
'Ihnen stehen damit die Prozeduren
'"procKopierenAusschneidenAus" sowie
'"procKopierenAusschneidenEin" zum Deaktivieren bzw.
'Einschalten der Kopier-Funktionen zur Verfuegung, die Sie
'nun noch ueber entsprechende Ereignisprozeduren automatisch
'aufrufen muessen. In der Regel bietet es sich an, die
'Schutzfunktion einzuschalten, wenn die Arbeitsmappe
'geoeffnet wird und den alten Zustand beim Schliessen der
'Datei wiederherzustellen. Verwenden Sie dazu die folgenden
'Prozeduren im Modul "Diese Arbeitsmappe":
Sub procKopierenAusschneidenAus()
'Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""
'Drag & Drop ausschalten
Application.CellDragAndDrop = False
' Schaltflaechen deaktivieren
procControlEnableDisable 21, False ' Ausschneiden
procControlEnableDisable 19, False 'Kopieren
procControlEnableDisable 22, False 'Einfuegen
procControlEnableDisable 755, False 'Inhalte einfuegen
End Sub
Sub procKopierenAusschneidenEin()
'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 aktivieren
procControlEnableDisable 21, True ' Ausschneiden
procControlEnableDisable 19, True 'Kopieren
procControlEnableDisable 22, True 'Einfuegen
procControlEnableDisable 755, True 'Inhalte einfuegen
End Sub
Sub procControlEnableDisable(intId As Integer, bolStatus As Boolean)
Dim cmbSuche As CommandBar
Dim cmbcSteuerelement As CommandBarControl
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