Registriert seit: 08.04.2016
Version(en): Office Mac 2011
Tach Profs,
das "Problem" scheint sehr einfach und daher will ich nicht glauben, dass es keine (oder zumindest keine simple) Lösung gibt:
Ich möchte eine Zelle per drag-and-drop* verschieben - und zwar so, dass NUR der Zelleninhalt, aber NICHT die Zellenformatierung verschoben wird. Konkret: Rahmen und Hintergrundfarbe der Zelle sollen bleiben wo sie sind, nur der Zelleninhalt (Werte, Formeln...) soll verschoben werden.
Das Netz ist voll von dieser oder ähnlichen Fragen aus den letzten Jahren - leider aber ohne wirkliche Lösung. Ich wollte nur noch mal sicher gehen, dass nicht vielleicht "gestern" gerade eine Lösung gefunden oder von MS programmiert wurde, die ich noch nicht gefunden habe...
Also - bitte gebt meiner sanften Hoffnung Nahrung!
Danke & Grüße, Thomas
*NICHT per ausschneiden und einfügen und auch nicht per rechte-Maustaste / Werte-einfügen etc.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
mit der linken Taste kannst Du die Zelle verschieben. Gleiche Aktion mit der rechten Taste führt in der Zielzelle beim Loslassen zu einem Auswahlmenü, wo Du Werte einfügen kannst, also kein Verschieben.
Andere Lösungen gehen wohl nur mit VBA.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 08.04.2016
Version(en): Office Mac 2011
Hallo André, danke für die schnelle Antwort und immerhin - dieses Kontextmenü kannte ich noch nicht Und für einen kurzen Moment hatte ich auch die Hoffnung, es könnte der Ideallösung schon nahe kommen; aber genau meine Funktion fehlt leider in der Auswahl: "Hierhin nur als Werte verschieben" gibt es leider nicht (warum auch immer). Nun ja :s
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
09.04.2016, 09:05
(Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2016, 09:05 von RPP63.)
Moin! Auf meiner Dose (Win xl2010) geht das, beim Apfel nicht? EDIT: Ja, hast Recht, der Ursprungswert muss per Entf gelöscht werden. Dateiupload bitte im Forum! So geht es: Klick mich! src=" Dateiupload bitte im Forum! So geht es: Klick mich!" /> 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)
Registriert seit: 08.04.2016
Version(en): Office Mac 2011
...exakt. Nur warum? :16:
Excel bietet mitunter für so komplexe Probleme geniale Lösungen und manchmal scheitert man an den simpelsten Herausforderungen. Das will mir dann nicht in den Kopf...
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
09.04.2016, 19:52
(Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2016, 19:52 von schauan.)
Hallo fanthomas,
na ja, vielleicht ist das was, was noch nicht viele Kunden verlangt haben. Wer weiß, vielleicht ist der Anteil der Nutzer, die diese Tricks kennen, auch nicht allzu hoch, sodass nur wenige Nutzer das überhaupt verlangen würden ... Zumal es ja noch die Alternative VBA gäbe, falls durch viele vereinzelte Zellen ein hoher Aufwand beim nachträglichen Löschen der Inhalte entstehen würde. Das wäre sicher effektiver als 300 Zellen so mit Drag und Drop zu behandeln.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 08.04.2016
Version(en): Office Mac 2011
Also wenn man das Thema googlet, dann findet man -zig Fragen genau dieser Art seit vielen Jahren... Der Bedarf scheint also durchaus gegeben zu sein. Vermutlich wird MS aber Gründe haben, warum sich diese Funktion dann eben doch nicht ganz so simpel umsetzen lässt... Und an VBA habe ich mich tatsächlich noch nie rangetraut
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
10.04.2016, 06:43
(Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2016, 08:44 von Kuwer.
Bearbeitungsgrund: Smilies ausgeschaltet
)
Hallo fanthomas,
bei den Fragen und Antworten bei Google wird aber in der Mehrzahl der Fälle das "normale" Verhalten gesucht und erklärt, hab ich den Eindruck. Na ja, ist ja eigentlich müßig, darüber zu diskutieren.
Wegen VBA ran trauen hast Du ja uns als Unterstützung. Die erste Frage dabei ist, ob der Einsatz von VBA überhaupt möglich ist. Gerade in Firmen wird das zuweilen unterbunden.
Hier mal 3 kleine Beispiele.
Beim ersten sind wir auch wieder bei einer Variante, nice to have, aber leider von MS nicht so vorgesehen :-(
Beim zweiten würdest Du einen kompletten, zusammenhängenden Bereich übernehmen. Da könnten dann auch Daten dabei sein, die Du im Zielbereich nicht haben willst. Es wird auch der komplette Quellbereich entleert, also z.B. auch eventuell vorhandenen andere, erhaltenswerte Daten. Könnte man aber auch mit Range("A1,B2").Value = "" kombinieren
Im dritten Beispiel werden die nötigen Daten gezielt übernommen und an anderer Stelle positioniert. Das könnte dann auch eine Liste sein, wo die Daten in anderer Anordnung, z.B. untereinander, stehen. Ich hab hier mal die gleiche Anordnung genommen. Die Quelldaten werden dann gezielt entfernt.
Wenn Du 300 Zellen zum Übernehmen hast, wird der Code entweder entsprechend länger oder man findet eine Regel zum Einsetzen einer Schleife, z.B. wenn jede 3. Zelle übernommen werden soll ... Übrigens gibt es da auch einen Makrorekorder. Der erzeugt zwar nicht gerade schönen Code, aber er funktioniert wenigstens (meistens).
Sub test1() Range("C1,D2").Value = Range("A1,B2").Value 'geht leider nicht Range("A1,B2").Value = "" End Sub
Sub test2() Range("C1:D2").Value = Range("A1:B2").Value Range("A1:B2").Value = "" End Sub
Sub test3() Range("C1").Value = Range("A1").Value Range("D2").Value = Range("B2").Value Range("A1,B2").Value = "" End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
10.04.2016, 08:33
(Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2016, 08:33 von RPP63.)
Moin! Je länger man darüber nachdenkt, desto unverständlicher ist es, dass es in Excel nicht möglich ist. Wenn ich eine formatierte Zelle ausschneide, ist es in Word problemlos möglich, entweder nur den Wert oder aber den formatierten Text der Zelle einzufügen. In Excel kann ich nur den kompletten Container incl. aller Formatierungen einfügen. Daher: Es ist durchaus möglich, die Zwischenablage selektiv auszulesen, schließlich geht es ja auch bei der .Copy-Methode, bei .Cut unverständlicherweise nicht. Nur bei .Copy kann ich dann per .PasteSpecial problemlos auf alles mögliche zugreifen ("Inhalte einfügen"), bei .Cut läuft VBA in den Fehler: "Die PasteSpecial-Methode des Range-Objekts konnte nicht durchgeführt werden." (bzw. wird im Kontextmenü nur "Einfügen" angezeigt, watrum auch immer) Es dürfte wirklich kein Hexenwerk sein, einen Befehl wie .CutValues resp. "Werte ausschneiden" zu implementieren. Wahrscheinlich geht dies mit APIs, ich werde mal in einer stillen Stunde recherchieren. Aber: Der Apfel ist bei APIs außen vor, dies geht nur bei Dosen, weil diese APIs Bestandteil des Betriebssystems sind. Vorweg mal ein VBA-Code: Code: Sub RPP() With ActiveCell .Copy .Offset(0, 2).PasteSpecial xlPasteValues .ClearContents End With End Sub
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
10.04.2016, 09:04
(Dieser Beitrag wurde zuletzt bearbeitet: 10.04.2016, 09:04 von RPP63.)
Noch etwas: Das ziehen am Zellrahmen ist ja nicht anderes als Drag&Drop Während es bei ActiveX-Controls dafür ein Ereignis gibt, welches man auswerten kann: Code: Private Sub TextBox1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, _ ByVal Action As MSForms.fmAction, _ ByVal Data As MSForms.DataObject, _ ByVal X As Single, _ ByVal Y As Single, _ ByVal Effect As MSForms.ReturnEffect, _ ByVal Shift As Integer)
… gibt es dies nicht im Klassenmodul der Tabelle. 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)
|