AW: VBA - nur Werte einfügen zulassen
09.09.2013 16:46:36
Lars
Habe jetzt folgenden Code von der Seite alant.com.
Beim Einfügen von Zahlen habe ich jetzt die Auswahl von 3 Möglichkeiten: Einfügen, Verknüpfung einfügen, an Zielformatierung anpassen.
Hier soll jedoch "an nur Zielformatierung anpassen" zur Auswahl zur Verfügung stehen. Hat hier jemand einen Vorschlag?
Option Explicit
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
Private Sub Workbook_Activate()
' Die Befehlsschaltflächen deaktivieren
EnableControl 21, False ' Ausschneiden (cut)
EnableControl 19, False ' Kopieren (copy)
EnableControl 22, False ' Einfügen (paste)
EnableControl 755, False ' Inhalte Einfügen (pastespecial)
' Tastenkombinationen abfangen
Application.OnKey "^c", "" ' STRG + c kopieren abfangen (copy)
Application.OnKey "^v", "" ' STRG + v einfügen abfangen (cut)
Application.OnKey "^x", "" ' STRG + x ausschneiden abfangen (cut)
Application.OnKey "+{DEL}", "" ' SHIFT + ENTF auschneiden abfangen (cut)
Application.OnKey "+{INSERT}", "" ' SHIFT + EINFG einfügen abfangen (paste)
' Zellen mit dem Randanfasser verschieben, kopieren verhindern
Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_Open()
' Die Befehlsschaltflächen deaktivieren
EnableControl 21, False ' Ausschneiden (copy)
EnableControl 19, False ' Kopieren (copy)
EnableControl 22, False ' Einfügen (paste)
EnableControl 755, False ' '
' Tastenkombinationen abfangen
Application.OnKey "^c", "" ' STRG + c Kopieren (copy)
Application.OnKey "^v", "" ' STRG + v (cut)
Application.OnKey "^x", "" ' STRG + x (paste)
Application.OnKey "+{DEL}", "" ' SHIFT + ENTF (cut)
Application.OnKey "+{INSERT}", "" ' SHIFT + EINFG (paste)
' Zellen mit dem Randanfasser verschieben, kopieren wieder ermöglichen
Application.CellDragAndDrop = False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Die Befehlsschaltflächen wieder aktivieren
EnableControl 21, True ' Ausschneiden (cut)
EnableControl 19, True ' Kopieren (copy)
EnableControl 22, True ' Einfügen (paste)
EnableControl 755, True ' pastespecial
' Tastenkombinationen abfangen
Application.OnKey "^c" ' STRG + c (copy)
Application.OnKey "^v" ' STRG + v (cut)
Application.OnKey "^x" ' STRG + x (cut)
Application.OnKey "+{DEL}" ' SHIFT + ENTF (cut)
Application.OnKey "+{INSERT}" ' SHIFT + EINFG (paste)
' Zellen mit dem Randanfasser verschieben, kopieren wieder ermöglichen
Application.CellDragAndDrop = True
End Sub
Private Sub Workbook_Deactivate()
' Die Befehlsschaltflächen wieder aktivieren
EnableControl 21, True ' Kopieren (copy)
EnableControl 19, True ' Kopieren (copy)
EnableControl 22, True ' Einfügen (paste)
EnableControl 755, True ' ' Inhalte Einfügen (pastespecial)
' Tastenkombinationen wieder einschalten
Application.OnKey "^c" ' STRG + c Kopieren (copy)
Application.OnKey "^v" ' STRG + v Einfügen (paste)
Application.OnKey "^x" ' STRG + v ausschneiden (cut)
Application.OnKey "+{DEL}" ' SHIFT + ENTF (cut)
Application.OnKey "+{INSERT}" ' SHIFT + EINFG (paste)
' Zellen mit dem Randanfasser verschieben, kopieren wieder ermöglichen
Application.CellDragAndDrop = True
End Sub