Страницы: 1
RSS
Нужна помощь. Как закрасить ячейку по клику
 
Добрый день! Еще раз =))  
На листе  Sh1 имеется диапазон ячеек Range(D11:AH30)  
Пытаюсь сделать так, чтобы при нажатии правой клавиши 1 раз - ячейка окрашивалась в красный цвет. Используя событие Sub Workbook_SheetBeforeRightClick()  
А при  Sub Workbook_SheetBeforeDoubleClick()  -  цвет убирался
 
selection.interior.colodindex=44 красим  
selection.interior.colorindex=false убираем цвет
 
что-то не клеится...  
пока у меня так (нашел в чужом коде)  
 
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)  
If ActiveSheet.Name <> Sh1 Then 'если не на том листе - выходим  
Exit Sub  
End If  
End Sub  
и как тут приклиеть selection.interior.colodindex=44 'красим?
 
Что конкретно не клеится?  
Код в нужный лист  
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
Selection.Interior.ColorIndex = False  
End Sub  
 
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)  
Selection.Interior.ColorIndex = 44  
End Sub
 
{quote}{login=sva}{date=25.02.2011 08:24}{thema=}{post}Что конкретно не клеится?  
Код в нужный лист  
 
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
Selection.Interior.ColorIndex = False  
End Sub  
 
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)  
Selection.Interior.ColorIndex = 44  
End Sub{/post}{/quote}  
 
да, если в лист - работает! но при этом выскакивает диалоговое окно (вырезать, копировать, вставить и т.д.) это можно побороть?
 
Вам не нужно контекстное меню?  
Может лучше красить по клику левой кнопкой?
 
{quote}{login=sva}{date=25.02.2011 08:37}{thema=}{post}Вам не нужно контекстное меню?  
Может лучше красить по клику левой кнопкой?{/post}{/quote}  
 
Один из вариантов!    
но, когда Sub Worksheet_BeforeDoubleClick() - входит в ячейку, а мне это не надо  
 
У меня есть чудо-календарь, там нет ни контекстного меню, ни входа в ячейку. Если есть время - посмотрите, не хватает у меня знаний =))
 
Так  
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)  
Selection.Interior.ColorIndex = 44  
Cancel = True  
End Sub
 
О! как все просто =))  
спасибо!
 
попробуй событие Worksheet_SelectionChange с условием на диапазон ячеек Range(D11:AH30)  
 
If Target.Row > 104 And Target.Row < 107 And Target.Column > 3 And Target.Column < 6 Then  
Target.Interior.ColorIndex = 44  
End If
Страницы: 1
Читают тему
Наверх