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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 17:42   #21
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

Даааа это оно! Поясните, пожалуйста, Великомудрый.
Каравай вне форума Ответить с цитированием
Старый 22.02.2010, 17:48   #22
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Каравай Посмотреть сообщение
Даааа это оно! Поясните, пожалуйста, Великомудрый.
Всё просто. Выделите столбец А - меню Формат - Условное форматирование. Смотрите, там заданы Ваши условия.
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 22.02.2010, 17:57   #23
Каравай
Пользователь
 
Регистрация: 16.02.2010
Сообщений: 34
По умолчанию

Благодарен..
Каравай вне форума Ответить с цитированием
Старый 24.02.2010, 23:40   #24
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

СПАСИБО ОГРОМНОЕ ГЕНИАЛЬНОМУ ЧЕЛОВЕКУ SAS888 за доработанный код.
Теперь раскрашивание ячеек происходит мгновенно без задержек.
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim cell As Range
    Application.EnableEvents = False: On Error Resume Next
    With Target
        .Font.ColorIndex = 0: .Font.Bold = False
        .Cells.SpecialCells(xlCellTypeConstants, xlNumbers).Font.Bold = True
        .Cells.SpecialCells(xlCellTypeFormulas).Font.Bold = True
    End With
    For Each cell In Intersect(Target, Cells.SpecialCells(xlCellTypeFormulas))
        Set a = Range(Replace(cell.Formula, "=", ""))
        If a Is Nothing Then cell.Font.ColorIndex = 3 Else Set a = Nothing
        If UBound(Split(cell.Formula, "!")) > 0 Then cell.Font.ColorIndex = 5
    Next
    Application.EnableEvents = True
End Sub
Остался последний вопрос по этому макросу:
1. Как сделать, что бы после срабатывания макроса в экселе не пропадала кнопка отмены предыдущих изменений.
Tidus вне форума Ответить с цитированием
Старый 25.02.2010, 00:29   #25
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Насколько я знаю, макросы отменять нельзя
motorway вне форума Ответить с цитированием
Старый 25.02.2010, 06:20   #26
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Действия, выполненные макросом отменять можно (метод OnUndo), но не любого макроса и не всегда.
Если бы требовалось отменить действие макроса, то в начале кода можно было бы сохранять адреса и значения изменяемых ячеек, и в последствии, при необходимости их восстанавливать. А в нашем случае макрос запускается уже после внесенных изменений (по событию изменения значений ячеек). Т.е. что-либо сохранять уже поздно. Можно попытаться запоминать значения по каждому событию выделения ячейки (диапазона), но это весьма проблематично.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 25.02.2010 в 06:31.
SAS888 вне форума Ответить с цитированием
Старый 25.02.2010, 11:05   #27
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Действия, выполненные макросом отменять можно (метод OnUndo), но не любого макроса и не всегда.
Я неправильно сформулировал вопрос, вы не поняли. Сейчас макрос не отменяет предыдущие действия окрашивания - это нормально, но мне-то нужно, что бы просто кнопка отмены не пропадала после его исполнения.
До этого я например сделал правку в ячейке ввел цифру и кнопка отмены стала активной, а после срабатывания макроса она засвечивается. Нужно сделать так, что бы этот макрос вообще не трогал кнопку отмены.
Tidus вне форума Ответить с цитированием
Старый 25.02.2010, 11:44   #28
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
после срабатывания макроса она засвечивается. Нужно сделать так, что бы этот макрос вообще не трогал кнопку отмены.
Это невозможно. После работы любого макроса, кнопка отмены становится неактивной. Используя метод OnUndo, в меню "Правка" появится активная команда "Отменить (имя макроса)". Но, как я уже говорил, в данном случае это не применимо.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 27.02.2010, 09:52   #29
Tidus
Форумчанин
 
Регистрация: 08.09.2009
Сообщений: 133
По умолчанию

Ок спасибо.
Tidus вне форума Ответить с цитированием
Старый 21.03.2012, 11:35   #30
petretr
Новичок
Джуниор
 
Аватар для petretr
 
Регистрация: 21.03.2012
Сообщений: 1
По умолчанию

Такой вопрос. При окрашивании шрифта в определенный цвет в некоторых ячейках он не сохраняется и становится обратно черным, а в других точно таких же ячейках все нормально. Что нужно сделать, чтобы выбранный цвет сохранялся?
petretr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение книги Excel по названию ячейки и по пути ячейки IFRSoff Microsoft Office Excel 16 07.06.2012 16:58
Как раскрасить в RichEdit часть сторки? Вадим Буренков Общие вопросы Delphi 3 06.07.2009 13:42
Как задать свойства ячейки в Excel? Dux Microsoft Office Excel 6 16.08.2008 17:03
Как раскрасить ячейку внутри StringGrid. GarfieldX Общие вопросы Delphi 5 14.02.2008 21:59
Как раскрасить ячейки StringGrid'а в разные цвета в соответствии с условием? monushka Компоненты Delphi 12 05.11.2007 23:44