Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
copy&paste deaktivieren
11.03.2008 14:02:46
Schpock
Hi,
ich brauche bitte mal Hilfe bei folgendem Problem:
Wir benutzen ein im Netz freigebenes Excel File, in dem Einträge duch Auswahl in Drop-down Feldern gemacht werden. Manche Schlauberger "umgehen" das Drop-down durch copy&paste aus anderen Zellen. Alle Funktionsleisten habe ich ausgeblendet, aber über strg-c strg-v und die rechte Mastaste kann man copy&paste noch ausführen. Wie kann ich diese beiden Funktionen auch noch stilllegen?
Vielen Dank für Hilfe!
Gruss
Thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: copy&paste deaktivieren
11.03.2008 14:04:43
Michael
Ich würde über Gültigkeit nur eine Liste der Werte freigeben, die erlaubt sind. Dann nützt auch keine Copy&Paste.
Gruß
Michael

AW: copy&paste deaktivieren
11.03.2008 14:09:00
Schpock
Die Drop down liste arbeitet schon mit "Gültigkeit", aber das funktioniert leider nicht, da auch mit den Werten aus der Gültigkeitsliste Missbrauch betrieben werden kann.

AW: copy&paste deaktivieren
11.03.2008 14:11:00
Uwe
Hi Thomas,
schreibe dir ins Klassenmodul der Tabellenblattes:

Private Sub Worksheet_Activate()
Application.CutCopyMode = False
End Sub



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub


Klappt es?
Gruß
Uwe
(:o)

Anzeige
AW: copy&paste deaktivieren
11.03.2008 14:23:00
Schpock
Nein, leider nicht. Vielleicht mache ich das auch falsch. Bei mir war kein "Klassenkodul" angezeigt. Da habe ich über "einfügen-klassenmodul" ein neues angelegt und Deinen Code dahinein kopiert. Funktioniert aber nicht...

AW: copy&paste deaktivieren
11.03.2008 15:26:56
Uwe
Hi Thomas,
das kann auch nicht klappen. Ich meinte das so:
In Deiner Datei mit Alt/F11 in den VBA Editor wechseln.
Falls nötig auf Deine Datei doppelklicken.
Falls nötig auf Microsoft Exel Objekte doppelklicken
Dann auf die Tabelle in der das funktionieren soll doppelklicken (z.B. Tabelle1 (Tabelle1))
Und DANN im Hauptfenset den Code einfügen. (Das ist das Klassenmodul des Tabellenblattes (ich hoffe ich liege da richtig mit Klassenmodul, aber auf jedenfall ist es das Modul des Tabellenblattes))
Das sollte klappen.
Gruß
Uwe
(:o)

Anzeige
AW: copy&paste deaktivieren
12.03.2008 08:29:00
Schpock
Ah... jetzt... ja... das funktioniert einwandfrei. Vielen Dank!!!!!

AW: copy&paste deaktivieren
11.03.2008 16:18:11
volti
Hallo,
hier mal ein neuer Weg.
In Modul "DieseArbeitsmappe"

Private Sub Workbook_Open()
NoCopyNoPaste
End Sub
Private Sub Workbook_Close()
PasteAgain
End Sub


In ein anderes Modul:

Private Declare Function SetTimer Lib "user32" (ByVal hWnd As _
Long, ByVal nIDEvent As Long, ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As _
Long, ByVal nIDEvent As Long) As Long
Declare Function EmptyClipboard Lib "USER32.DLL" () As Long
Declare Function OpenClipboard Lib "USER32.DLL" (ByVal hWnd As Long) As Long
Declare Function CloseClipboard Lib "USER32.DLL" () As Long
Public hTimer As Long
Sub NoCopyNoPaste()
If hTimer = 0 Then
hTimer = SetTimer(0, 0, 100, AddressOf NoCopyNoPaste)
End If
Beep
T = OpenClipboard(0)
EmptyClipboard
CloseClipboard
End Sub
Sub PasteAgain()
KillTimer 0, hTimer
hTimer = 0
End Sub


Möglicherweise noch verbesserungswürdig, also nur als Ansatz gedacht.
Der Ansatz startet eien Timer (hier 100msec Pollingtime) und löscht einfach die Zwischenablage. Nach Schließen der Arbeitsmappe wird der Timer gekillt.
PS: Während der Bearbeitung kann auch woanders nicht eingefügt werden. Das ist noch ein Manko.
viele Grüße
Karl-Heinz

Anzeige
AW: copy&paste deaktivieren
12.03.2008 11:21:12
volti
Hallo,
noch mal ein Update, mit dem nun außerhalb von Excel normal kopiert und eingefügt werden kann.


Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SetTimer Lib "user32" (ByVal hWnd As _
Long, ByVal nIDEvent As Long, ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hWnd As _
Long, ByVal nIDEvent As Long) As Long
Declare Function EmptyClipboard Lib "USER32.DLL" () As Long
Declare Function OpenClipboard Lib "USER32.DLL" (ByVal hWnd As Long) As Long
Declare Function CloseClipboard Lib "USER32.DLL" () As Long
Public hTimer As Long
Sub NoCopyNoPaste()
Dim hfWnd As Long
hfWnd = GetForegroundWindow()
If hTimer = 0 Then
hTimer = SetTimer(0, 0, 100, AddressOf NoCopyNoPaste)
hWndTimer = FindWindow("XLMAIN", vbNullString)
End If
If hfWnd = hWndTimer Then
T = OpenClipboard(0)
EmptyClipboard
CloseClipboard
End If
End Sub
Sub PasteAgain()
KillTimer 0, hTimer
hTimer = 0
End Sub


viele Grüße
KH

Anzeige

251 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige