Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: CutCopyMode: welche Zellen sind markiert

CutCopyMode: welche Zellen sind markiert
08.07.2020 10:30:43
Sebastian
Hallo zusammen,
ich möchte gerne in einer Worksheet_SelectionChange-Sub rausfinden, welche Zellen zum kopieren markiert sind (also wenn man Strg+C drückt und die Zellen dann einen gestrichelten Rand bekommen).
Beispiel:
1. User klickt auf Zelle A1, dann Strg+ C
2. User klickt auf Zelle A2: in der SelectionChange-Sub kann ich über Application.CutCopyMode = 1 und die vorherige Auswahl von A1 (in Variable gespeichert) rausfinden, dass der User die Zelle A1 markiert hat
3. Der User fügt jetzt nicht die Werte in A2 ein
4. Stattdessen klickt er auf A3 und drückt dann wieder Strg + C. Er hatte also ursprünglich A1 kopiert, nirgends eingefügt und dann aber eine andere Zelle (A3) markiert und diese dann kopiert. Wenn der User jetzt auf A4 klickt, möchte ich wissen, dass A3 zum kopieren markiert ist. Und auch wen er jetzt noch mehrfach rumklickt ohne einzufügen, möchte ich immer noch wissen, dass A3 zum kopieren markiert ist.
Hoffe das war verständlich...
Hat jemand eine Idee?
LG Sebastian
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CutCopyMode: welche Zellen sind markiert
08.07.2020 10:40:30
Werner
Hallo,
in ein allgemeines Modul:
Public raKopierbereich As Range
Sub Schaltfläche3_Klicken()
MsgBox raKopierbereich.Address(0, 0)
End Sub

Ins Codemodul des Tabellenblattes, das du überwachen willst:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Set raKopierbereich = Selection
End Sub
Gruß Werner
Anzeige
AW: CutCopyMode: welche Zellen sind markiert
08.07.2020 10:52:25
Daniel
Hi
ich wüsste nicht, dass es einen Weg gibt um rauszufinden, welcher Zellbereich zum Kopieren markiert ist.
für den Fall von STRG+C könntest du dir einen Workaround basteln, in dem du folgendes Makro schreibst und der Tastenkombination STRG+C zuweist:
Public WasWurdeKopiert
Sub Kopieren_und_protokollieren()
set WasWurdeKopiert = Selection
Selection.Copy
End Sub

dann kannst du über die Variable WasWurdeKopiert abfragen, was zuletzt kopiert wurde (und das muss nicht immer ein Zellbereich sein)
für die anderen Kopiermethoden (z.B. über das Kontextmenü der Zelle) funktioniert das allerdings nicht.
Gruß Daniel
Anzeige
AW: CutCopyMode: welche Zellen sind markiert
08.07.2020 15:25:40
Sebastian
Danke Daniel, geniale Idee. Das hilft weiter!
Vergiss meinen Beitrag...
08.07.2020 11:09:06
Werner
Hallo,
...du wolltest ja quasi eine Überwachung von Str/C
Daniels Vorschlag funktioniert. Auf diesen "Workaround" wäre ich jetzt nicht gekommen.
Gruß Werner
AW: Vergiss meinen Beitrag...
08.07.2020 15:26:36
Sebastian
Werner, trotzdem danke! Den BeforeRightClick kannte ich noch nicht.
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
08.07.2020 21:25:49
Werner
AW: Vergiss meinen Beitrag...
08.07.2020 16:11:53
Sebastian
Hier meine finalen Lösungen:
A: Wenn der User Strg+C drückt
Sub Kopieren_und_protokollieren()
'Diese Sub wird mit Str+c ausgeführt. Also immer wenn der User eine Zelle kopiert.
Set varWasWurdeKopiert = Selection
Selection.Copy
End Sub
Dem Makro wurde die Tastenkombination Strg+c zugewiesen
B: Der User macht einen Rechtsklick und wählt dann im Kontextmenu den Befehl kopieren aus
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Call Kopieren_und_protokollieren_2
End Sub

Sub Kopieren_und_protokollieren_2()
'Diese Sub wird ausgeführt, bevor der User einen Rechtsklick macht und dann möglicherweise auf  _
kopieren klickt.
Set varWasWurdeKopiert = Selection
End Sub

Im SeletionChange dann auf CutCopyMode = 1 prüfen (klappt für A und B):
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = 1 Then
Msgbox varWasWurdeKopiert.Address
End If

Jetzt ist lediglich die Kopierfunktion, wenn der User über das normale Menü/Ribbons bzw. den Schnellzugriff geht noch nicht abgefangen. Aber damit kann ich in diesem Fall leben.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige