Makro mit einem tooglebutton verknüpfen
17.01.2017 20:17:10
Armando
ich hab in eine Tabelle ein Blatt eingerichtet auf dem nur bestimmte User zugriff haben. Da sind jetzt 2 Buttos wo man das Strg-C+V+X usw. erlaubt und eines wo man dies unterbinden kann.
Folgendes hab ich in einem Modul gespeichert:
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
Nun hab ich überlegt, dass man daraus am besten doch eine ActiveX Schaltfläche z.B. tooglebutto nutzen könnte wo man dieses ein und ausschalten kann und gleichzeitig die Farbe rot wenn es unterbunden wird und grün wenn es erlaubt ist.
Ich habe nun folgendes gefunden welches ein tabellenblatt ein und ausblendet und ich bin begeistert:
Private Sub ToggleButton1_Click()
With ToggleButton1
If ToggleButton1 = True Then
Sheets("tabelle2").Visible = True
.Caption = "Button ist " & vbCr & "eingeschaltet"
.BackColor = RGB(0, 255, 100)
Else
Sheets("tabelle2").Visible = False
.Caption = "Button ist " & vbCr & "ausgeschaltet"
.BackColor = RGB(255, 0, 0)
End If
End With
End Sub
Könnt ihr mir helfen, wie ich durch das anklicken das unterbinden und rot leutet und durch erlauben dann grün leutet?Vielen Dank vorab.