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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2013, 10:53   #1
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию Выделить смежные ячейки.

Господа!Всем привет!
Есть столбец А с данными.
Некоторые ячейки столбца А залиты зеленым цветом.
Как выделить желтым цветом смежные с залитыми ячейками ячейки.
Смежные СВЕРХУ.
http://clip2net.com/s/55mToX
Если можно подскажите пожалуйста как это можно сделать без макросов.
Спасибо.
solnce60 вне форума Ответить с цитированием
Старый 19.05.2013, 11:03   #2
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию

Пример во вложении
Вложения
Тип файла: rar ФАЙЛЛЛ.rar (76.2 Кб, 16 просмотров)
solnce60 вне форума Ответить с цитированием
Старый 19.05.2013, 11:13   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

без макросов - не получится...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.05.2013, 12:31   #4
solnce60
Пользователь
 
Регистрация: 25.10.2012
Сообщений: 56
По умолчанию

Давайте тогда с макросом.Только пусть пример макроса будет в примере т.е. в книге.Я внимательно посмотрю на него...... может быть до меня дойдет - что это такое,как он устроен и как им пользоваться.
А главное может быть я смогу применить его к другому диапазону данных.
А если есть ссылочка на инф.о макросах для начинающих...буду Вам очень признателен.
Спасибо.

Последний раз редактировалось solnce60; 19.05.2013 в 12:33.
solnce60 вне форума Ответить с цитированием
Старый 19.05.2013, 13:18   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно "в лоб". Это достаточно быстро:
Код:
Sub Окраска()
    Dim x As Range: Application.ScreenUpdating = False
    For Each x In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
        If x.Interior.ColorIndex = 4 Then x.Offset(-1).Interior.ColorIndex = 6
    Next
End Sub
Пример во вложении. Откройте файл и запустите макрос "Окраска".
ВАЖНО: если в зеленый цвет окрашена ячейка "A1", то будет ошибка, т. к. макрос попытается окрасить ячейку "выше". Что в этом случае делать автор вопроса не оговаривает.
Вложения
Тип файла: rar ФАЙЛЛЛ_2.rar (80.8 Кб, 10 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 19.05.2013, 13:22   #6
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

SAS888, у вас в коде нет:
Application.ScreenUpdating = True

Почему?
Скрипт вне форума Ответить с цитированием
Старый 19.05.2013, 13:40   #7
VictorK
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 64
По умолчанию

Ячейки в строках 5358 и 5359 - зелёные.
Поскольку первая из них является "смежной сверху" по отношению ко второй, следует ли её "перекрашивать" в жёлтый цвет и как в таком случае поступать с ячейкой в строке 5357?
VictorK вне форума Ответить с цитированием
Старый 19.05.2013, 13:45   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
SAS888, у вас в коде нет:
Application.ScreenUpdating = True

Почему?
Я часто "не закрываю скобки". В данном случае это допустимо. После завершения работы макроса Application.ScreenUpdating восстановится в True. Если в коде макроса использовать вызов других функций и подпрограмм, либо отлавливать события листа, то Application.ScreenUpdating = True нужно обязательно...
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 19.05.2013, 19:55   #9
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Можно создать простейшую пользовательскую функцию, которая возвращает индекс цвета ячейки:
Код:
Function Icli(r As Range)
Icli = r.Interior.ColorIndex
End Function
и применить ко всему столбцу условное форматирование.
Формула условного форматирования без учета закраски текущей ячейки (будут окрашены 5357 и 5358)
Код:
=Icli(A2)=4
Формула с учетом закраски текущей ячейки (будет окрашена только 5357)
Код:
=И(Icli(A2)=4;Icli(A1)<>4)
Тормозить будет, правда.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 19.05.2013 в 19:59.
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделить ячейки в столбце по условию ольгаг Microsoft Office Excel 4 06.09.2012 07:51
Как выделить макросом ячейки? Тандер Microsoft Office Excel 8 17.07.2012 12:59
Выделить ячейки в столбце Artem_85 Microsoft Office Excel 12 02.03.2012 22:34
Выделить ячейки в экселе gamaiunov_alex Microsoft Office Access 2 18.04.2011 18:12
как выделить ячейки в БД grafgrial БД в Delphi 2 26.06.2010 09:49