Страницы: 1
RSS
выделение строки, условное форматирование + макрос
 
Люди, помогите внести поправку в приложенный файл с учетом того, чтобы выделение не срабатывало, когда изменяется ячейка первого столбца. Сразу поясню, что в исходном файле по первому столбцу идет поиск первой пустой ячейки, а в файле более 200 строк, т.е. если будет выделятся каждая строка поиск будет очень долгим.
Как я только не пробовала) Может такой вариант вообще не подходит? У меня такое подозрение, что надо изменить формулу в условном форматировании и избежать слова "строка". А вот как это осуществить, не понимаю :(
Заранее спасибо за знания!
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [B2:D10]) Is Nothing Then [B2:D10].Calculate
End Sub
Учимся сами и помогаем другим...
 
вариант
С Уважением, Даулет!
 
Всем спасибо!
Уже полгода пытаюсь изучать excel, но чем дальше, тем больше убеждаюсь, что изучить его невозможно :)
 
Всё невозможное - возможно, главное желание и практика.
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
Люди, растолкуйте, пожалуйста, очередную проблему.
Сделала координатное выделение строки и столбца (содрала здесь же на планете). Но почему теперь макрос на поиск первой пустой строки работает не совсем корректно. Ячейку находит, встает в нее, но не прокручивает лист. В файле пример работы макроса на листе с координатным выделением и на листе без него.
И подскажите, возможно ли поменять цвет выделения?
Заранее спасибо!
 
Попробуйте так..
 
или так
 
Маугли, спасибо. То что нужно.
Заменила только одну строку.
Код
WorkRange.ClearFormats

на вот такую, чтобы сохранить формат, а убрать только заливку  
Код
WorkRange.Interior.ColorIndex = 0

Может можно и как то по-другому, но моих знаний на большее не хватает.

RAN, Вам тоже спасибо за вариант!
 
Господа знатоки, простите за бестолковость. Помогите подправить код так, чтобы при выделении ячейки вне рабочего диапазона заливка рабочего диапазона стиралась. (по аналогии если выделено более одной ячейки)
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim LastRow As Long: LastRow = [A2].End(xlDown).Row
    Dim WorkRange As Range, CrossRange As Range
    Set WorkRange = Range("A2:E" & LastRow)
    If Target.Count > 1 Then
       WorkRange.FormatConditions.Delete
       Exit Sub
    End If
    Application.ScreenUpdating = False
    If Not Intersect(Target, WorkRange) Is Nothing Then
    
        Set CrossRange = Intersect(WorkRange, Union(Target.EntireRow, Target))
        WorkRange.FormatConditions.Delete
        CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1"
        CrossRange.FormatConditions(1).Interior.Color = 650054
        Target.FormatConditions.Delete
    
    End If
End Sub


Спасибо!
Может еще кому-нибудь пригодиться. Долго вымучивала :)
 
Мне тут вчера Карен помог, за что ему большое спасибо.  ;)  
Выделение строки происходит только тогда, когда активная ячейка находится в 5-ом столбце.
Изменено: Владимир - 05.10.2014 09:30:23
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо! Буду изучать.
Изменено: Juliya - 25.01.2013 13:52:47
 
Владимир, в моем варианте невозможно удалить значения всей выделенной области.
Изначально тоже делала в таком варианте, но в первый же раз менеджер удалил строку  :)
Изменено: Juliya - 25.01.2013 13:53:03
Страницы: 1
Наверх