Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2009, 17:11   #1
550953
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 36
По умолчанию условное форматир

Здравствуйте подскажите пожалуйста тупому решение. Есть лист в ширину А-Т и в длину до бесконечности. Если в столбце Е встретился 0 в результате вычисления (не пустая), то строка на которой он расположен(А-Т) должна быть перечеркнута.
Заранее спасибо.
550953 вне форума Ответить с цитированием
Старый 30.08.2009, 17:52   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Выделение строки цветом подойдет?
motorway вне форума Ответить с цитированием
Старый 30.08.2009, 17:59   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Попробуйте так

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating=False
For i = 1 To (ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count - 1)
If (Cells(i, 5) = "0") Then
Rows(i).Select
    With Selection.Borders(xlDiagonalDown)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
   


End If


Next i
Application.EnableEvents = True
Application.ScreenUpdating=True
End Sub
motorway вне форума Ответить с цитированием
Старый 30.08.2009, 18:17   #4
550953
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 36
По умолчанию

Если можно, то с применением условного форматирования перечеркиванием, без ВБА. ВБА на крайний случай с перечеркиванием, только напишите ламеру, куда и как, что бы автоматически срабатывал код.
Большое спасибо.
550953 вне форума Ответить с цитированием
Старый 30.08.2009, 18:21   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Нужно именно перечеркивание по середине строки или другое подойдет? По крайней мере у меня можно делать только внешние границы ячеек
motorway вне форума Ответить с цитированием
Старый 30.08.2009, 18:24   #6
550953
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 36
По умолчанию

Нужно именно перечеркивание текста содержащегося в строке А-Т.
550953 вне форума Ответить с цитированием
Старый 30.08.2009, 18:28   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Нажимаем Условное форматирование - Правила выделения ячеек - Равно - Слева пишем "0" - справа "Польз. формат" - в Шрифте выбираем зачеркнутый.
VBA - Alt+F11 - вставить код

Последний раз редактировалось motorway; 30.08.2009 в 18:38.
motorway вне форума Ответить с цитированием
Старый 30.08.2009, 19:02   #8
550953
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 36
По умолчанию

Файл прикрепил результата. По столбцу Е все нули перечеркивает. Но строку всю не перечеркивает.
Изображения
Тип файла: jpg Безымянный.jpg (24.5 Кб, 144 просмотров)

Последний раз редактировалось 550953; 30.08.2009 в 19:06.
550953 вне форума Ответить с цитированием
Старый 30.08.2009, 19:10   #9
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Попробуйте так: усл форматирование -> создать правило -> исп. формулу для опр. формат. ячеек (последнее) ->написать
=И(ЕПУСТО($E1)=ЛОЖЬ; $E1=0) -> задать перечеркивание -> и потом в управлении правилами форматирования посмотреть, к чему это применилось и изменить на =$1:$1048576
motorway вне форума Ответить с цитированием
Старый 30.08.2009, 19:20   #10
550953
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 36
По умолчанию

Диапалазон не срабатывает, очень большое, Ставил на 999 результата нет, поставил на "=$A$83:$T$84", а в формулу
="И(ЕПУСТО($E$83)=ЛОЖЬ; $E$83=0)"
рузультата нет.
550953 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
условное форматирование tanka123 Microsoft Office Excel 39 27.01.2016 11:34
Условное форматирование eda Microsoft Office Excel 2 27.07.2009 13:03
Условное форматирование ZORRO2005 Microsoft Office Excel 6 29.09.2008 16:46
Условное суммирование rexec Microsoft Office Excel 3 07.02.2008 18:20
Условное форматирование Asu Microsoft Office Excel 2 18.10.2007 10:14