Добрый день! Возникла задача: необходимо, чтобы при отсутствии данных в ячейках P8, P11, P14, P17 в ячейках N8, N11, N14, N17 шрифт менялся с 14 на 18, а в ячейках Q8, Q11, Q14, Q17 шрифт менялся с 24 на 28. В теории это легко можно было бы сделать условным форматированием, но такая возможность отсутствует в Excel. Прошу подсказать как это реализовать макросом в обе стороны, то есть, когда есть данные шрифт 14 и 24, когда нет, то 18 и 28.
Добрый день! Возникла задача: необходимо, чтобы при отсутствии данных в ячейках P8, P11, P14, P17 в ячейках N8, N11, N14, N17 шрифт менялся с 14 на 18, а в ячейках Q8, Q11, Q14, Q17 шрифт менялся с 24 на 28. В теории это легко можно было бы сделать условным форматированием, но такая возможность отсутствует в Excel. Прошу подсказать как это реализовать макросом в обе стороны, то есть, когда есть данные шрифт 14 и 24, когда нет, то 18 и 28.Dion
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("P8, P11, P14, P17")) Is Nothing Then Exit Sub If Target = "" Then Target.Offset(, 1).Font.Size = 28 Target.Offset(, -2).Font.Size = 18 Else Target.Offset(, 1).Font.Size = 24 Target.Offset(, -2).Font.Size = 14 End If End Sub
[/vba] ======== Добавлено Кстати, условным форматированием тоже можно. Для этого достаточно открыть файл в OpenOffice, задать правила и сохранить. Там есть возможность форматировать шрифт. См. файл
Здравствуйте. В модуль листа [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("P8, P11, P14, P17")) Is Nothing Then Exit Sub If Target = "" Then Target.Offset(, 1).Font.Size = 28 Target.Offset(, -2).Font.Size = 18 Else Target.Offset(, 1).Font.Size = 24 Target.Offset(, -2).Font.Size = 14 End If End Sub
[/vba] ======== Добавлено Кстати, условным форматированием тоже можно. Для этого достаточно открыть файл в OpenOffice, задать правила и сохранить. Там есть возможность форматировать шрифт. См. файлPelena
Pelena, большое спасибо! Ваши навыки работы в Excel поражают, но можете пояснить менее опытному пользователю: 1. Не совсем понял, куда вставлять, в какой модуль? Это макрос? Если не трудно, приложите готовый файл уже со вставкой. 2. По форматированию в OpenOffice тоже вопрос: открыл все правила на листе, там их всего два (см. вложение). Проверяется только ячейка P8, а по какому принципу меняется шрифт в других ячейках, если , P11, P14, P17 не проверяется?
Pelena, большое спасибо! Ваши навыки работы в Excel поражают, но можете пояснить менее опытному пользователю: 1. Не совсем понял, куда вставлять, в какой модуль? Это макрос? Если не трудно, приложите готовый файл уже со вставкой. 2. По форматированию в OpenOffice тоже вопрос: открыл все правила на листе, там их всего два (см. вложение). Проверяется только ячейка P8, а по какому принципу меняется шрифт в других ячейках, если , P11, P14, P17 не проверяется?Dion
1. Правой кнопкой мыши по ярлычку листа -- Посмотреть код. Приложила файл 2. Правила два, но применяются они к четырём ячейкам каждое (см. поле Применяется к). А так как ссылка $P8 смешанная, строка не закреплена, то столбец Р проверяется по своей строке, т.е. $P8, $P11, $P14 и $P17
1. Правой кнопкой мыши по ярлычку листа -- Посмотреть код. Приложила файл 2. Правила два, но применяются они к четырём ячейкам каждое (см. поле Применяется к). А так как ссылка $P8 смешанная, строка не закреплена, то столбец Р проверяется по своей строке, т.е. $P8, $P11, $P14 и $P17Pelena
Извините, что приходится поднимать старую тему, но возникла проблема: если в ячейках P8, P11, P14, P17 отсутствуют данные, то код работает отлично, но когда в ячейках W8, W11, W14, W17 прописаны формулы =ЕСЛИ(AC11="";"";AC11), то код не реагирует, хотя, по идее, это то же самое. Например, в ячейке AC11 нет данных, ячейка W11 проверяет это значение, но шрифт в U11 и X11 не меняется. Можно его как-то подкорректировать или задача невыполнима?
Извините, что приходится поднимать старую тему, но возникла проблема: если в ячейках P8, P11, P14, P17 отсутствуют данные, то код работает отлично, но когда в ячейках W8, W11, W14, W17 прописаны формулы =ЕСЛИ(AC11="";"";AC11), то код не реагирует, хотя, по идее, это то же самое. Например, в ячейке AC11 нет данных, ячейка W11 проверяет это значение, но шрифт в U11 и X11 не меняется. Можно его как-то подкорректировать или задача невыполнима?Dion
не совсем. Макрос срабатывает при изменении ячейки, а не при пересчете, поэтому в Вашей новой ситуации нужно проверять изменение ячеек AC8, AC11, AC14, AC17, а не W8, W11, W14, W17
не совсем. Макрос срабатывает при изменении ячейки, а не при пересчете, поэтому в Вашей новой ситуации нужно проверять изменение ячеек AC8, AC11, AC14, AC17, а не W8, W11, W14, W17Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816