Здравствуйте, AndrF, Вы писали:
AF>В ячейках листа расположены кнопки вызывающие одну и ту же процедуру, как узнать:
AF>1. В какой ячейке была нажата кнопка? Или имя/ссылка на кнопку... AF>2. Имя/подпись этой кнопки?
Если речь о кнопках с панели Forms, то что-то типа
MsgBox Application.Caller
Dim Button As Object
Set Button = ActiveSheet.Buttons(Application.Caller)
MsgBox Button.Caption
MsgBox Button.Left & " " & Button.Top
MsgBox ActiveSheet.Cells(5, 2).Left & " " & ActiveSheet.Cells(5, 2).Top
К ячейкам кнопки не привязаны, можно просто сравнить их местоположение с координатами ячеек, они в одних единицах
Здравствуйте, Elena_, Вы писали:
E_>К ячейкам кнопки не привязаны, можно просто сравнить их местоположение с координатами ячеек, они в одних единицах
Юзер скопировал кнопку теперь их две.
И как мне определить какая из них была нажата, ведь имя-то у них одно.
И TopLeftCell один и тот-же, хотя кнопки в разных ячейках...
Здравствуйте, AndrF, Вы писали:
AF>Юзер скопировал кнопку теперь их две. AF>И как мне определить какая из них была нажата, ведь имя-то у них одно. AF>И TopLeftCell один и тот-же, хотя кнопки в разных ячейках...
Что-то я не совсем понимаю ситуацию. Если это пользователи так резвятся, может быть, имеет смысл удалить вторую кнопку и поставить защиту с паролем на объекты листа? Если это рабочая ситуация, то имя не может быть одно, это ключ в коллекции, совпадают только подписи. Имя — Application.Caller, про подписи — видно из кода. Если кнопки расположены в разных местах, то координаты не могут совпадать. Кнопки вообще не в ячейках, а просто на листе.
Это все относится к кнопкам с панели Forms. Кнопки с панели Элементы управления имеют просто обработчики событий, может быть, это какие-то сторонние ActiveX?
Здравствуйте, Elena_, Вы писали:
E_>Что-то я не совсем понимаю ситуацию. Если это пользователи так резвятся, может быть
Пользователи пока еще не резвятся. Мне просто была интересна сама ситуация...
Сейчас просто добавляю в новые записи эти кнопки из кода, давая каждой уникальное имя.
В принципе тоже нормальное решение.
P.S
Сам я с Excel-ем работаю пару раз в год — сейчас просто менеджер попрсил помочь с данной проблемой...
Здравствуйте, AndrF, Вы писали:
AF>Пользователи пока еще не резвятся. Мне просто была интересна сама ситуация... AF>Сейчас просто добавляю в новые записи эти кнопки из кода, давая каждой уникальное имя.
Попробуйте скопировать и в назначенном макросе вызвать caller, Вы увидите, что имя само изменилось. Это две различные кнопки, и конечно, Excel их различает.
А чтобы не беспокоиться из-за некорректных действий пользователя, лучше поставить защиту. Правда, мои пользователи, к примеру, скорее лишний раз перезвонят перед тем, как нажать на кнопку. А копировать им и в голову не придет.