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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2009, 17:03   #1
rootking
Новичок
Джуниор
 
Регистрация: 02.02.2009
Сообщений: 1
По умолчанию Макрос для изменения цвета заливки

Доброго времени суток. Помогите, пожалуйста, решить проблему. Есть огромные файл Excel и в нём некоторые ячейки имеют цвет заливки, мне нужно изменить этот цвет на другой. Связи цвета и значения ячейки нет. В общем надо что то типо Желтый изменить на красный. Очень нужно, кому не сложно не откажите в помощи.
rootking вне форума Ответить с цитированием
Старый 02.02.2009, 21:04   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Ctrl+H, параметры, выбераем искомый формат, выбираем желаемый формат, жмем "заменить все".
всё. извините, что без макроса
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.02.2009, 20:22   #3
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Sub Замена_цвета()
Application.FindFormat.Interior.Col orIndex = 6
Application.ReplaceFormat.Interior. ColorIndex = 3
Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End Sub

А мне как раз по значению надо подсвечивать ячейки... например, желтым больше 1000, красным больше 5000... И чтобы быстро очистить заливку возможно было... Можно такое сделать?

Последний раз редактировалось xamillion; 03.02.2009 в 20:36.
xamillion вне форума Ответить с цитированием
Старый 04.02.2009, 07:07   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Код от xamillion приемлем тогда, когда известно какой именно цвет заливки нужно поменять. Если я правильно понял автора вопроса:
Цитата:
некоторые ячейки имеют цвет заливки, мне нужно изменить этот цвет на другой. Связи цвета и значения ячейки нет. В общем надо что то типо Желтый изменить на красный.
то замена желтого на красный - это просто для примера.
В предлагаемом варианте (см. вложение), кликнув правой кнопкой на ячейке, имеющей заливку, которую требуется заменить, в контекстном меню нужно выбрать "Изменить заливку", и на запрос - ввести код новой заливки. В результате на рабочем листе будет заменена заливка во всех ячейках с исходной заливкой. Если нужно "обесцветить" ячейки с выбранной заливкой - введите 0. Если код цвета введен неверно, или такого кода не существует, то изменение заливки просто не произойдет.

По поводу
Цитата:
А мне как раз по значению надо подсвечивать ячейки... например, желтым больше 1000, красным больше 5000... И чтобы быстро очистить заливку возможно было... Можно такое сделать?
предлагаю организовать цикл с проверкой значений ячеек. Но не по всем ячейкам, а только по тем, которые содержат числовые константы и формулы, результатом которых является число. Так быстрее. Например:
Код:
Sub Zalivka()
    Dim x As Range, y As Range, z As Range
    Application.ScreenUpdating = False: On Error Resume Next
    Set x = Cells.SpecialCells(xlCellTypeConstants, xlNumbers)
    Set y = Cells.SpecialCells(xlCellTypeFormulas, xlNumbers)
    Set z = Union(x, y)
    If x Is Nothing Then Set z = y
    If y Is Nothing Then Set z = x
    For Each Cell In z
        If Cell.Value >= 1000 Then Cell.Interior.ColorIndex = 6
        If Cell.Value >= 5000 Then Cell.Interior.ColorIndex = 3
    Next
    Set x = Nothing: Set y = Nothing: Set z = Nothing
End Sub

Sub Ochistka()
    Cells.Interior.ColorIndex = xlNone
End Sub
P.S. При небольших объемах данных на рабочем листе, более рационально использовать условное форматирование.
Вложения
Тип файла: rar Изменение_заливки.rar (9.8 Кб, 163 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 04.02.2009 в 07:11.
SAS888 вне форума Ответить с цитированием
Старый 05.02.2009, 00:29   #5
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
В предлагаемом варианте (см. вложение), кликнув правой кнопкой на ячейке, имеющей заливку, которую требуется заменить, в контекстном меню нужно выбрать "Изменить заливку", и на запрос - ввести код новой заливки. В результате на рабочем листе будет заменена заливка во всех ячейках с исходной заливкой. Если нужно "обесцветить" ячейки с выбранной заливкой - введите 0. Если код цвета введен неверно, или такого кода не существует, то изменение заливки просто не произойдет.
Оболдеть, мне нравится....

Цитата:
Сообщение от SAS888 Посмотреть сообщение
предлагаю организовать цикл с проверкой значений ячеек. Но не по всем ячейкам, а только по тем, которые содержат числовые константы и формулы, результатом которых является число. Так быстрее. Например:
Код:

Sub Zalivka()
.......
End Sub
P.S. При небольших объемах данных на рабочем листе, более рационально использовать условное форматирование.
Тоже прикольно, даже не думал, что так можно делать В Экселе...


Да, чудь было не забыл сказать спасибо - очень полезно...
xamillion вне форума Ответить с цитированием
Старый 11.01.2011, 09:05   #6
acxat
Новичок
Джуниор
 
Регистрация: 11.01.2011
Сообщений: 1
По умолчанию

Как в exele поставить автоматическую заливку цвета если в строке например от 70% до 100% то красный
заранее благодарен,
acxat вне форума Ответить с цитированием
Старый 11.01.2011, 10:38   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от acxat Посмотреть сообщение
Как в exele поставить автоматическую заливку цвета если в строке например от 70% до 100% то красный

http://www.planetaexcel.ru/tip.php?aid=121
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить значение функции Y=F(x) для аргумента x, изменяющегося от xн до xк с шагом изменения Hx. dr.Chas Общие вопросы по программированию, компьютерный форум 1 12.12.2008 13:58
программа для изменения размера локального диска фЁдОр Софт 9 04.12.2008 12:51
nLite - программа для перекомпановки, расширения или изменения дистрибутива ОС Alar Windows 4 24.10.2008 12:31
Диассемблиравание для изменения строковых данных без знания ассемблера GanGSISoft Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 06.10.2008 20:35