Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Copy & Paste immer nur Werte übernehmen
#21
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".
Antworten Top
#22
Wäre dieser Code s erfolgreich ?

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Application.CutCopyMode Then Target.PasteSpecial -4163
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#23
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?
Antworten Top
#24
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?
Antworten Top
#25
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)
Antworten Top
#26
Hallöchen,

nimm mal den Code von Boris 18 , aber im Change statt im SelectionChange.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#27
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
Antworten Top
#28
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 Wink
Antworten Top
#29
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 Smile

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!  22

Ich vermute mal, dass sich das nicht ändern lässt, oder? Somit kann ich die ganze Lösung nur Windows-Usern anbieten?
Antworten Top
#30
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste