Thema Datum  Von Nutzer Rating
Antwort
Rot Funktion Füllbereich per VBA deaktivieren
17.12.2015 16:33:13 Excel Foley
NotSolved
18.12.2015 23:28:10 BigBen
NotSolved
19.12.2015 00:29:06 Excel Foely
NotSolved
19.12.2015 09:24:59 Gast43900
NotSolved
19.12.2015 14:12:47 Excel Foley
NotSolved
19.12.2015 15:39:12 Gast16133
*****
NotSolved
19.12.2015 16:02:29 Gast71892
NotSolved
19.12.2015 17:51:31 Excel Foley
NotSolved
21.12.2015 11:30:03 Excel Foley
NotSolved
21.12.2015 12:52:52 Gast68451
NotSolved
21.12.2015 15:23:11 Excel Foley
NotSolved
21.12.2015 15:06:30 Gast30299
NotSolved

Ansicht des Beitrags:
Von:
Excel Foley
Datum:
17.12.2015 16:33:13
Views:
3017
Rating: Antwort:
  Ja
Thema:
Funktion Füllbereich per VBA deaktivieren

Hallo allerseits,

folgende Situation:

mein blattgeschütztes Sheet soll durch den DAU (Dümmster Anzunehmender User) benutzbar sein. Dieser soll in einem Bericht seine Arbeitszeit in Tagen angeben, welche in 0,25-er Taktung einzutragen sind. Zulässig ist also "0,25", "0,50", "0,75" und "1,00".

Ein kleines Makro prüft dabei, ob die tägliche Einsatzzeit den Wert von 1,00 überschreitet. Ist das der Fall, wird die letzte Eingabe per .Undo rückgängig gemacht und eine kleine Meldung erscheint. Über eine Liste in der Datenüberprüfung können auch keine abweichenden Eingaben (wie "0,15") getätigt werden. Soweit so gut.

Leider wäre der DAU kein DAU, wenn er nicht versuchen würde, genau diese sinnvolle Fehlerroutine zu umgehen. Ich habe also dafür gesorgt, dass er Makros nicht abschalten kann (bis auf den nur wenigen DAUs bekannten Entwicklermodus). Was könnte ein DAU noch versuchen? CopyPaste! Also gut: Per Workbook-Module sämtliche Kopier-Methoden abgeschaltet. Strg-C ist so tot wie Drag'n'Drop oder Autofill. Klappt super. Fast.

Denn leider ist eine Funktion nach wie vor prächtig praktisch nutzbar: Der Füllbereich im START-Ribbon.

Daher die Frage: Wie schalte ich den per VBA ab?

 

 

 

Anmerkung: Application.CellDragAndDrop = False funktioniert hierfür genauso wenig wie Application.CutCopyMode = False
Diese habe ich beide schon in meinem Code eingebaut.Ich hänge diesen einfach mal an. Sämtlicher Code wird im Workbook-Modul eingefügt:

Private Sub Workbook_Activate()
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_Deactivate()
Application.CellDragAndDrop = True
Application.OnKey "^c"
Application.CutCopyMode = False
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Application.CutCopyMode = False
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Application.CellDragAndDrop = True
Application.OnKey "^c"
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
MsgBox "Das Kontextmenü wurde deaktiviert." & vbCrLf & "Kopieren oder ''drag & drop'' funktioniert nicht.", 16, "In der gesamten Arbeitsmappe:"
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.OnKey "^c", ""
Application.CellDragAndDrop = False
Application.CutCopyMode = False
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CutCopyMode = False
End Sub

 

 

Die Private Sub Workbook_SheetBeforeRight ist bei mir mittels Kommentar ausgeklammert, da mit dem Rechtsklick trotzdem kein Code eingefügt werden kann. Sobald man die ausgewählte Zelle ändert, ist ein Einfügen nicht mehr möglich...

 

Cheers, Foley


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Funktion Füllbereich per VBA deaktivieren
17.12.2015 16:33:13 Excel Foley
NotSolved
18.12.2015 23:28:10 BigBen
NotSolved
19.12.2015 00:29:06 Excel Foely
NotSolved
19.12.2015 09:24:59 Gast43900
NotSolved
19.12.2015 14:12:47 Excel Foley
NotSolved
19.12.2015 15:39:12 Gast16133
*****
NotSolved
19.12.2015 16:02:29 Gast71892
NotSolved
19.12.2015 17:51:31 Excel Foley
NotSolved
21.12.2015 11:30:03 Excel Foley
NotSolved
21.12.2015 12:52:52 Gast68451
NotSolved
21.12.2015 15:23:11 Excel Foley
NotSolved
21.12.2015 15:06:30 Gast30299
NotSolved