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
#1
Liebe Community,

jeder kennt das Dilemma, dass sich eine noch so gut programmierte und geschützte Exceltabelle nicht davor schützen lässt, dass der Enduser per copy & paste sämtliche Zellformatierungen übertragen kann, solange er nicht freiwillig nur die Werte überträgt.

Ich habe jetzt leider eine Exceltabelle, bei der es enorm wichtig ist, dass die Formatierungen (auch meine bedingten Formatierungsregeln) gleich bleiben und leider haben meine Excel-Endanwender kaum Excel-Erfahrung und es kann daher nicht davon ausgegangen werden, dass die Benutzer immer korrekt per Rechtsklick brav nur die Werte einfügen.

Ich gehe davon aus, dass es noch immer keine elegante, VBA-freie Lösung hierfür gibt, auch nicht in Office 365, oder?

Gibt es denn eine VBA-haltige Lösung hierfür? Ich kenne mich mit VBA kaum aus, aber ein rein gedankentechnischer Ansatz wäre zum Beispiel, dass Excel erkennt, sobald jemand eine Zelle/Bereich in die Zwischenablage kopiert und dann VBA hier interveniert und direkt die Gesamtkopie zur Wertekopie abändert. Irgendwie so etwas eben. Kopieren an sich soll aber möglich sein (also nicht so etwas wie: Application.CutCopyMode = false, aber vielleicht gibts ja etwas wie Application.CutCopyMode = values oder so...).

Habt ihr hierfür zufällig eine Lösung?

Vielen Dank vorab für eure Rückmeldung.

Beste Grüsse

Binary91
Antworten Top
#2
Hi,

per VBA gibt es dafür eine Lösung - aber um es wasserdicht zu haben, nicht für Lau.
Bei Interesse bitte PN.
Antworten Top
#3
Hallo

ich weiss nicht welche wasserdichte Lösung der Kollege hat, es gibt eine Simpellösung.
Kopiere dieses Makro in ein Modul, dann gehe in den xlDialog mit Makro Listenfeld.
Im Makro Listenfeld kannst du das Mako anklicken und auf Optionen gehen.

Dort kannst du ein Tastenkürzel für den Start eintragen. Wählst du "v" dann wird dieses Makro gestartet.
Die normale Excel Funktion, wo alles eingefügt wird, mit Rahmen, Formate usw. ist dann aber abgeschaltet!


mfg Gast 123

Code:
Sub Werte_kopieren()
    ActiveCell.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub
Antworten Top
#4
Hi,


Zitat:ich weiss nicht welche wasserdichte Lösung der Kollege hat, es gibt eine Simpellösung.

Sub Werte_kopieren()
    ActiveCell.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

Und wenn die Anwender doch einfach Strg + c / Strg + v machen?
Antworten Top
#5
Moin!
Kein Scherz und nur am Rande!
Ich bin der Meinung, dass man in einem betrieblichen Umfeld Mäusen den Garaus machen sollte.  21
Hat den gewaltigen Vorteil, dass sich (nach einer gewissen Einarbeitungszeit) die Produktivität enorm steigert.
Schließlich lässt sich Excel sehr viel schneller mit Shortcuts bedienen.
Ich habe (als Bediener) mal das Vergnügen gehabt, eine DOS-Datenbank von Oracle benutzen zu müssen.
Die hatte keine Mausunterstützung, ließ sich aber pfeilschnell bedienen.

@Gast 1123 leitet ja den Shortcut Strg+v um.
Dies wird jedoch durch Rechtsklick → Einfügen torpediert.

Übrigens gibt es in Excel 365 endlich die Möglichkeit, nur Werte mittels Shortcut Strg+Umschalt+V einzufügen.
(dies ist bei vielen Anwendungen (wie beispielsweise dieser Forensoftware) längst Standard)

Gruß Ralf
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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • HKindler
Antworten Top
#6
Dazu hat MS das Userform (what's in a name) erfunden.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
Hi,

(26.02.2024, 05:12)RPP63 schrieb: Übrigens gibt es in Excel 365 endlich die Möglichkeit, nur Werte mittels Shortcut Strg+Umschalt+V einzufügen.

Danke für die Erinnerung. Das ging bisher bei mir nicht. Bin hier unter Windows auf dem halbjährlichen Enterprise-Kanal. Habe deinen Post zum Anlass genommen, das mal wieder zu testen. Und, oh Wunder, es funktioniert nun! 100
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#8
Hallöchen,

Zitat:Ich bin der Meinung, dass man in einem betrieblichen Umfeld Mäusen den Garaus machen sollte.
zumindest denen mit 4 Beinen

Wobei - geht auch lebend fangen und anderswo aussetzen? 15


   
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
Hallo zusammen,

erst einmal vielen Dank für eure zahlreichen Antworten. Ich habe es leider bisher nicht geschafft, mich zu Wort zu melden.

@Gast123:
Diese Lösung klingt in der Tat simpel und einleuchtend, ich würde es sehr gerne testen.

Was ich nicht verstehe, ist: "dann gehe in den xlDialog mit Makro Listenfeld".
Was soll ich machen? Wo finde ich das Makro Listenfeld? Ich finde den Button "Listenfeld", aber damit generiere ich ein entsprechendes Listenfeld-Objekt. Wo finde ich dieses Makro?

@RPP63:
Daran habe ich auch gedacht, aber kann man denn nicht auch den Rechtsklick mit der Maus über VBA kontrollieren? Meine User sollten überhaupt keine Rechtsklicks nutzen müssen, daher würde mir ein einfaches Kommando in VBA reichen, um Rechtsklicks zu deaktivieren. Habe hierzu folgenden Code über Google gefunden, was hältst Du davon?

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
  Cancel = True
End Sub

P.S.: STRG+UMSCHALT+V ist ja klasse!! Das werde ich persönlich ab sofort immer nutzen!! Nur leider kann ich auch da nicht für meine User garantieren...

Beste Grüsse
Binary91
Antworten Top
#10
Moin,

ich bin bei einem vergleichbaren Problem so vorgegangen, dass ich ein gesondertes Blatt für die Eingabe verwendet habe. Die einkopierten oder eingetragenen Werte werden anschließend in die eigentliche Datenquelle kopiert. Das Eingabeblatt wird anschließend wieder aus einer Vorlage bereinigt.

Das ganze hat ganz gut funktioniert.

Viele Grüße
derHöpp
Antworten Top


Gehe zu:


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