Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Hi Ralf,
Zitat:Aus Neugier, @Boris:
Ist das in Deiner Lösung auch berücksichtigt?
Im Prinzip wird der Copy-/Cut-Mode in dem Moment ignoriert/beendet, in dem eine andere Zelle selektiert wird (also ist Copy/Cut erstmal möglich - egal auf welchem Weg).
Entweder einfach canceln oder aber per Kontextmenü/Userform/Dialog fragen, ob nur die Inhalte eingefügt werden sollen. Falls ja: Inhalte einfügen, ansonsten Cancel.
CellDragAndDrop wird per se ausgeschaltet.
Das mal "in ganz einfach".
Registriert seit: 29.09.2015
Version(en): 2030,5
Wäre dieser Code s erfolgreich ?
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode Then Target.PasteSpecial -4163
End Sub
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Zitat:Wäre dieser Code s erfolgreich ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode Then Target.PasteSpecial -4163
End Sub
Und wenn man sich verklickt?
Registriert seit: 03.03.2017
Version(en): 365
Alles interessante Überlegungen.
Mal eine Verständnisfrage: Gibt es ein spezifisches "Paste"-Event, welches bei jeglicher Art des Einfügens, egal ob über Tastatur, Maus, Sprachbefehl etc., ausgeführt wird und abgefangen werden kann?
In diesem Fall müsste man doch lediglich dieses Event abfangen und die Zwischenablage auf die Art der Daten prüfen. Sind es Excel-konforme Tabellendaten, dann werden hiervon lediglich die Werte eingefügt. Sind es externe Daten (z. B. Bilder aus dem Web), dann kann unverändert eingefügt werden.
Oder?
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
01.03.2024, 09:14
(Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2024, 09:14 von RPP63.)
Gehe mal ins Modul einer Tabelle.
Im linken Dropdown der Symbolleiste wählst Du Worksheet.
Wenn Du das rechte Dropdown ausklappst, siehst Du alle Ereignismakros.
Ein Before_Paste ist nicht dabei.
Du kannst ja mal einen Vorschlag an MS schicken.
Erfolgsaussichten ist gleich Null!
MS entwickelt VBA seit etlichen Jahren nicht mehr weiter, sondern implementiert nur noch neue Funktionen.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
nimm mal den Code von Boris

, aber im Change statt im SelectionChange.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.03.2016
Version(en): Excel 2003/ 2016
Hallo
ich weiss nicht ob es VBA Befehle gibt, mit denen man die Zwischenablage auswerten kann um festzustellen ob Bilder oder Textdaten vorliegen?? Das übersteigt man Wissen.
Alternativ könnte man die Zwischenablage in eine Hilfstabelle laden, auch genau an die Position die in der Tabelle vorkommt, und prüfen was man da hineinkopiert hat. Bei Bilder den Kopiervorgang mit Einfügen in die Zieltabelle wiederholen, bei Tabellendaten mit Werte einfügen wiederholen. Danach Application.CutCopyMode = False setzen, und die Hilfstabelle löschen.
Ich weiss nicht ob das wirklich weiterhilft, einen Versuch ist es evtl. wert ....
mfg Gast 123
Registriert seit: 04.11.2014
Version(en): Office 365 Beta
Zitat:Mal eine Verständnisfrage: Gibt es ein spezifisches "Paste"-Event, welches bei jeglicher Art des Einfügens, egal ob über Tastatur, Maus, Sprachbefehl etc., ausgeführt wird und abgefangen werden kann?
Direkt zu Beginn hab ich nicht umsonst geschrieben:
Zitat:per VBA gibt es dafür eine Lösung - aber um es wasserdicht zu haben, nicht für Lau.
Zumindest, wenn Du auch den absoluten DAU einbremsen möchtest, denn die sind so was von erfinderisch
Registriert seit: 03.03.2017
Version(en): 365
Hallo nochmals,
also ich bin zu dem Schluss gekommen, dass eine wasserdichte Lösung zu aufwändig ist.
Mir würde es reichen, wenn STRG+V umgeleitet würde in das entsprechende Makro:
Code:
Sub Werte_kopieren()
ActiveCell.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
und gleichzeitig der Rechtsklick prinzipiell blockiert würde:
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Andere Einfügetricks durch den DAU sind dann wohl Berufsrisiko

Jetzt stelle ich mit Erschrecken fest, dass Makros über Tastenkombinationen bei Mac-Usern nicht über CMD + Buchstabe (z. B. 'v'), sondern über CMD+Option+Buchstabe aufgerufen werden!

Ich vermute mal, dass sich das nicht ändern lässt, oder? Somit kann ich die ganze Lösung nur Windows-Usern anbieten?
Registriert seit: 28.08.2022
Version(en): 365
Hi,
weise dein Makro nicht über Bordmittel (aka Entickelrtools --> Makros --> [Makro auswählen] --> Optionen) der V-Taste zu, sondern verwende die Application.OnKey()-Methode innerhalb des Workbook_Open()-Events. Damit kannst du ein Makro einer beliebigen Tasten-Kombination zuordnen.
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365