VBA Hilfe Kopieren und eine Bestätigung
#1
Ich habe folgendes Problem in Excel:
Wenn ich eine Zelle mit Strg + C kopiere, erscheinen ja die bekannten „laufenden Ameisen“ als Zeichen dafür, dass der Kopiervorgang aktiv ist.
Nun hätte ich zusätzlich gerne, dass der Text der kopierten Zelle (z. B. A1) grün eingefärbt wird, sobald kopiert wurde.
Das Einfärben funktioniert grundsätzlich – allerdings beendet mein VBA-Code offenbar den Kopierprozess, sodass am Ende nichts mehr im Zwischenspeicher landet. Die Zelle ist zwar grün, aber der Inhalt lässt sich nicht mehr einfügen.
Gibt es hierfür einen sauberen Lösungsansatz, bei dem:
  • der normale Kopiervorgang (Strg + C) erhalten bleibt
  • die „laufenden Ameisen“ weiterhin angezeigt werden
  • und zusätzlich eine optische Markierung (z. B. grüne Schrift oder Hintergrund) gesetzt wird?
Leider kann ich aktuell keinen Code posten, da die betreffende Arbeitsmappe noch auf der Arbeit liegt.
Ich wäre sehr dankbar für jeden Hinweis oder Lösungsansatz.
Vielen Dank im Voraus!
Gruß Marcell
Antworten Top
#2
Hi Marcell,

ich vermute, Du willst die Quellzelle formatieren?

Quelladresse merken
Kopiervorgang starten, ausführen, beenden
Text der Zelle der gemerkten Zelladresse formatieren
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#3
(02.02.2026, 22:40)Tigger86 schrieb: sauberen Lösungsansatz, bei dem:
  • der normale Kopiervorgang (Strg + C) erhalten bleibt
  • die „laufenden Ameisen“ weiterhin angezeigt werden
  • und zusätzlich eine optische Markierung (z. B. grüne Schrift oder Hintergrund) gesetzt wird?


Code:
Sub Test()
  'Wird gerade kopiert?
  If Application.CutCopyMode = xlCopy Then
    'Zelle(n) grün machen
    Selection.Interior.Color = RGB(0, 255, 0)
  End If
End Sub
Antworten Top
#4
Hallöchen,

ein Problem ist, dass beim Kopieren nicht unbedingt das ursprüngliche Zellformat genommen wird, sondern das Format beim Kopiervorgang.

Abfolge in etwa
- kopieren der ungefärbten Zelle
- Zelle färben --ggf. als WorksheetSelectionChange-Ereignis
- Einfügen

Seltsamerweise ist dann das Ziel ebenfalls gefärbt.

Wenn man da was automatisieren will, muss man tiefer in die Trickkiste greifen. Ganz wird man aber eventuell auch nicht zum Ziel kommen, da das Killen der Ameisen keine Reaktion / kein Ereignis auslöst.
Daneben gibt es noch andere Scwchstellen. Hier mal ein Ansatz. Die Quellzelle wird hier nach 10 s gefärbt - brauchst Du länger, werden auch die Zielzellen gefärbt Wink und immer klappt es auch nicht.


Code:
Private Sub Worksheet_Activate()
  'Code im Tabellenblattmodul
  'Auswahl merken
  Set rngOld = Selection
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  'wenn der Kopiermodus aktiv ist und die Pruef-Variable auf falsch steht, dann
  If Application.CutCopyMode = xlCopy And boCopy = False Then
    'Pruefvariable auf wahr setzen
    boCopy = True
    'Zielbereich merken
    Set rngTarget = Target
    'mit Verzögerung Quellezelle gruen formatieren
    Application.OnTime Now + TimeValue("00:00:10"), "Test"
  'wenn der Kopiermodus nicht aktiv ist, dann
  ElseIf Application.CutCopyMode = False Then
    'Pruefvariable auf falsch setzen
    boCopy = False
    'Zielbereich ruecksetzen
    Set rngTarget = Nothing
    'Zielbereich als neuen alten Bereich setzen
    Set rngOld = Selection
  End If
End Sub

'Code in Modul1
Public boCopy As Boolean
Public rngTarget As Range, rngOld As Range

Sub Test()
    'Zelle(n) grün machen
    rngOld.Interior.Color = RGB(0, 255, 0)
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo Miteinander,

ist zwar Quatsch, aber ich würde Strg./C mit Workbook_Open abfangen und dann der Prozedur zuweisen.

.xlsm   Kopierten Range grün färben.xlsm (Größe: 16,16 KB / Downloads: 1)

Gruß Uwe
Antworten Top


Gehe zu:


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