Страницы: 1
RSS
Запись в ячейку по нажатию сочетания клавиш
 
Задача следующая:
- Есть книга со 123 страницами
Необходимо:
1) В "Активном листе"
2) Выбираю любую ячейку и нажимаю на нее один раз левой кнопкой мыши (делаю ее активной)
2) Затем, по нажатию сочетания клавиш "ctrl + enter"
4) В ячейку "А1" на текущем листе записывается название активной ячейки
---------
Пример:
Например выбрал "лист 45", тыкунл на ячейку "B12", нажал "ctrl + enter" и в текущем листе в ячейку "А1" записалось "В12", т.е. адрес ячейки "В12".
Т.е. я могу в любое время, выбрать любой лист в книге, тыкнуть на клавиатуре "ctrl + enter" и в ячейку А1 на текущем листе записался адрес активной ячейки.

Я так понимаю, здесь, нужен какой-нибудь бесконечный цикл while, который распространяется на всю книгу, в котором прописан код отслеживания нажатия клавиш и условия записи в ячейку "А1" активной ячейки на активном листе.

Вроде все просто, но когда ты не знаешь VBA, задача очень сложная)

Заранее благодарен!
 
Код
Sub t()
Cells(1, 1) = Selection.Address
End Sub
Для сочетания Ctrl+...
кроме ...+Enter. Это вроде системная комбинация.
 
Цитата
GRIM написал: Для сочетания Ctrl+...кроме ...+Enter. Это вроде системная комбинация.
Что предложите, чтобы не попадало под горячие клавиши? Ну например ctrl + a, ctrl + v - точно не подойдет, да и вопрос по сути в другом, как организовать цикл для всей книги?
 
vdv777, а что Вы так на цикле настаиваете? Вы пробовали работу макроса от GRIM? Он делает именно то, о чем Вы просили, на активном листе. А насчет сочетаний - есть еще целая клавиатура кроме "a" и "v", и еще Ctrl+Shift+заглавная буква...
 
Не нужен никакой цикл: используйте событие Workbook_SheetSelectionChange в модуле книги.
 
_Igor_61, я не пойму куда вставить этот код, чтобы попробовать? Я захожу в "разработчик"->"просмотр кода", затем у меня есть мои 123 листа в древе слева, а так же есть лист "эта книга", пытаюсь туда вставить - нечего не происходит
 
Цитата
vdv777 написал:
Я не пойму куда вставить этот код
В стандартный (обычный) модуль.
 
Цитата
vdv777 написал:
а так же есть лист "эта книга", пытаюсь туда вставить - нечего не происходит
Может всё же немножечко поучиться? :)  Создание макросов и пользовательских функций на VBA. А то прям как в анекдоте - всё расскажи, да покажи, да дай попробовать...
 
Цитата
Юрий М написал:
Cells(1, 1) = Selection.Address
Цитата
Юрий М написал:
В стандартный (обычный) модуль.
Вставил в "Workbook_SheetSelectionChange" - работает вроде, остался маленький нюанс, мне нужно записать адрес активной ячейки в "лист1" в ячейку "С3", как это сделать? Сомневаюсь, что
Код
Лист1!С3 = Selection.Address
- будет работать)))
 
Не знаю, что Вы и куда вставили, но попробуйте так:
Код
sheets("Лист1").range("С3") = Selection.Address
 
Спасибо! Все работает. Последний вопрос, а если я хочу записать имя активного листа, то будет такой код?
Код
sheets("Лист1").range("С3") = Selection.Sheet
Изменено: vdv777 - 27.07.2019 22:37:34
 
Код
Activesheet.Name
 
Спасибо кто помогал! Лучший форум!!!! Дай Бог Вам здоровья!
Страницы: 1
Наверх