Страницы: 1
RSS
Правая кнопка мыши
 
Здравствуйте. Вопрос в следующем: можно ли в Excel сделать так, чтобы при нажатии левой кнопки мыши выполнялся определённый макрос, а при нажатии правой кнопки - другой?
 
Можно. Пользователи, к-рые будут вынуждены работать с Вашим ваянием не ограничат свой лексикон печатными словами. Столько нового о себе узнаете!:-)
Я сам - дурнее всякого примера! ...
 
почему?)) и как это сделать?
 
Потому. Представьте, Вам надо просто выделить ячейку мышью. Или диапазон. А вместо этого Ваш макрос начнет невесть что вытворять. И отменить уже ничего нельзя будет после макроса. Или выбрать из контекстного меню спецвставку например, или формат. Хорошо если только синяками отделаетесь:-)    
А по теме - читайте справку о событиях листа, книги.
Я сам - дурнее всякого примера! ...
 
Я ячейки КАК собираетесь выбирать (активировать)
 
Я ячейки = А ячейки :-)
 
после нажатия ToggleButton у меня закрашиваетс определённый диапазон красным цветом при нажатии левой кнопкой, хотелось бы, чтобы при нажатии на правую кнопку можно было бы убрать заливку.
 
вернее не так, когда жму кнопу (ToggleButton), клацаю на ячейку, и относительно неё закрашивается диапазон...
 
И зачем этот изврат? Принажатой ТБ диапазон красится, при отпущенной - чистится. Зачем еще усложнять?
Я сам - дурнее всякого примера! ...
 
А про ToggleButton мы должны были сами догадаться?  
Нажата - заливаем, отжата - снимаем заливку. Зачем ещё лево/право?
 
Тут и ТБ не надо. Достаточно кнопки. Выделил ячейку, щелкнул. Если закрашена - чистим, нет - красим.
Я сам - дурнее всякого примера! ...
 
а если кнопок несколько? вопрос на самом деле просто теоретический...интересно просто, где про это почитать можно...2 часа в гуле ищу, ничего не нашёл...
 
Потому и "не нашел", что никто в сознании таким не занимается:-) Я же говорю, можно. Но не нужно.  
P.S. а какая разница сколько кнопок? У каждой свой макрос.  
 
 
32232
Я сам - дурнее всякого примера! ...
 
я, видимо, чего-то не понимаю...если я хочу закрасить 50 разных ячеек, но при этом промазал и выбрал 5 неправильно, чтобы быстро вернуть нормальную заливку, я хочу при всё ещё нажатой ТВ просто клацнуть правой кнопкой мыши по неправильно выбранным ячейкам и всё....может, это конечно чесать левое ухо правой рукой, но мне кажется, это удобно было бы..
 
А не проще просто еще раз щелкнуть по простой кнопке, как я предлагал от 27.10.2012, 17:22?
Я сам - дурнее всякого примера! ...
 
пожалуй, проще)) просто хотелось уточнить именно про правую кнопку
 
Помню я этот тоггле...  
Там при выделении ячейки она красится, вероятно ещё и цвет перед этим можно выбрать. Так вот - добавьте ещё одну радиокнопку "нет заливки" - если покрасили не те, то просто переключите цвет на этот и уберите заливку.  
Зачем усложнять?
 
я уже сделал кнопки на удаление заливки, но хотелось бы без них обходится...если так не нравится идея с правой кнопкой мыши, может, подскажете, как сделать удаление заливки при нажатой ТВ при сочетании клика и Shift (или др. кнопки)???
 
_Владимир_, Вы читаете, что Вам отвечают? Зачем правый клик, комбинация с шифтом?.. Кликнули один раз - закрасили, кликнули ещё раз - сняли заливку. См. простой пример.
 
Юрий М, я читаю, что мне пишут) я только начинаю разбираться во всех этих примудростях VBA...в примере, что Вы мне скинули всё работает, как надо..но у меня задача другая (я не знаю, можно ли её выполнить так, как Вы сделали)..есть несколько кнопок (окраска в красный, зелёный, синий и т.п. цвета)..при нажатии на одну кнопку я выбирать должен мышью ячейки, которые надо красить..если сделать так, чтобы при отжатой кнопке ТВ окраска снималась, как программа определит, с каких именно ячеек снимать заливку???
 
{quote}{login=_Владимир_}{date=27.10.2012 07:09}{thema=}{post} как программа определит, с каких именно ячеек снимать заливку???{/post}{/quote}А как сейчас программа у Вас определяет - какие ячейки красить? :-)
 
Public OnOff As Boolean  
Public Sub ToggleButton1_Click()  
With Me.ToggleButton1  
If .Value = True Then  
Me.ToggleButton2.Value = False  
Me.ToggleButton3.Value = False  
OnOff = True  
.Caption = ""  
.Font.Size = 10  
.BackColor = &HC0C0FF  
.ForeColor = &HFF&  
Else  
OnOff = False  
.Caption = ""  
.Font.Size = 11  
.BackColor = &HFFFFFF  
.ForeColor = &H0&  
End If  
End With  
End Sub  
 
Sub Worksheet_SelectionChange(ByVal Target As Range)  
If OO = True Then  
With Target.Range("A1:D4")  
.Interior.ColorIndex = 16  
.Value = ""  
End With  
Range("A1").Activate  
End If
 
я вот хочу во второй sub добавить проверку, если нажат shift и активируется ячейка, то:  
With Target.Range("A1:D4")  
   .Interior.ColorIndex = 0  
   .Value = ""  
End With
 
Вот для выделенного диапазона.
 
Ладно, спасибо за потраченное время на меня. Думаю, здесь дело вкуса..мне кажется, предложенный Вами вариант, неудобен для использования...буду дальше изучать VBA))
Страницы: 1
Читают тему
Наверх