Страницы: 1
RSS
Макрос отслеживающий событие, Макрос отслеживающий событие "копирования" или "вставить" ("Ctrl+C" или "Ctrl+C")
 
Доброго всем времени суток!
На модуле листа, насколько я знаю, можно записать процедуры, которые запускаются по изменению/выделению в определённой ячейки или группы ячеек. А есть ли процедура такая же на копирование или сброса банка памяти (вставить)? К примеру в ячейке A1 данные в текстовом формате, при копировании или последующей операции вставить эта ячейка закрашивалась в переделённый цвет. Подскажите процедуру, пожалуйста!)
Если нужен пример, я его составлю, но вроде как и без примера ясно.)
 
Если именно "Ctrl+C", то можно перегрузить это сочетание.
Повесить на него макрос со вставкой из буфера обмена и закрашиванием.
 
"перегрузить это сочетание" что это значит?) Как это сделать? Подскажи, плиз.
Изменено: sirius0211 - 02.04.2024 11:41:03
 
На это сочетание повесить другой макрос.
 
 .SendKeys "^a^c"  типа этого?
 
Sub Копирование()

   Application.SendKeys "^c"
End Sub
так?
 
Вообще не про SendKeys.
Код
Sub RunOnce()
    Application.MacroOptions Macro:="myPaste", ShortcutKey:="c"
End Sub

Sub myPaste()
    On Error Resume Next
    ActiveSheet.Paste
    Selection.Interior.Color = RGB(100, 100, 100)
    On Error GoTo 0
End Sub
 
Вообще не про SendKeys. Точно!) Попробовал, не получилось. Копирует макрос сам, так-как на момент исполнения работал сам макрос...
Спасибо за очередную помощь!!! Изучу этот вопрос!!! Удачи тебе!!!
 
Что-то не получилось! Видимо руки кривые!)
Решил другим способом
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.OnKey "^c", "macros1"
End Sub

Код
Sub macros1()
    If TypeName(Selection) = "Range" Then
        If Application.CommandBars("Standard").Controls("Копировать").Enabled Then
            Selection.Interior.Color = RGB(255, 0, 0) 
        End If
    End If
End Sub

И всё таки спасибо большое за потраченное время на меня!)
Изменено: sirius0211 - 02.04.2024 12:59:54
 
Само копирование - это не событие приложения Excel, которое может быть программно обработано.
Можно, конечно, как советовали выше, слепить макрос, который будет реагировать на ввод с клавиатуры хоткея Ctrl+C, но это "костыль", т.к. копирование может быть выполнено и по ПКМ, например, или просто нажатием на кнопку "Копировать" на ленте.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
В том коде, который я сообразил совместно с GPT (правда долго пришлось объяснять и кое что переделывать), проблем с различными способами копирования не возникает. Реагирует макрос только на комбинацию Ctrl+C. Меня интересует как раз и способ копирования этим методом.
Изменено: sirius0211 - 02.04.2024 14:15:34
 
Извините, но где в постановке задачи - стартовом топике темы Вы увидели указание на то, что обрабатывать нужно копирование именно по хоткею  Ctrl+C , а не любым другим доступным способом?
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
"...Макрос отслеживающий событие "копирования" или "вставить" ("Ctrl+C" или "Ctrl+C")..." ошибся с ctrl-V
Изменено: sirius0211 - 02.04.2024 15:08:35
Страницы: 1
Наверх