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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2012, 09:43   #1
tibhar940
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 79
По умолчанию Работа с цветом ячеек

Подскажите, пожалуйста, можно ли реализовать такой функционал?
Если На активном листе ячейка A1 имеет красную заливку, записать её значение в ячейку A2.
tibhar940 вне форума Ответить с цитированием
Старый 23.09.2012, 09:52   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

приблизительно так:
Код:
if [a1].interior.color = 255 then [a2]=[a1]
осталось только решить когда это выполнять
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 23.09.2012, 10:18   #3
tibhar940
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 79
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
приблизительно так:
Код:
if [a1].interior.color = 255 then [a2]=[a1]
осталось только решить когда это выполнять
Извините, пожалуйста. Я немного не так сформулировал вопрос..
У меня есть ячейки от А1 до А256. Если какая либо из них красная, то нужно записать значение красной ячейки в ячейку B1.
tibhar940 вне форума Ответить с цитированием
Старый 23.09.2012, 10:40   #4
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А если красных несколько? Или ни одной. Что тогда?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 23.09.2012, 10:59   #5
tibhar940
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 79
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
А если красных несколько? Или ни одной. Что тогда?
В моём случае красных может быть только одна.
tibhar940 вне форума Ответить с цитированием
Старый 23.09.2012, 11:21   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Код:
Sub www()
    Dim c As Range
    Application.FindFormat.Clear
    Application.FindFormat.Interior.ColorIndex = 3
    Set c = ActiveSheet.UsedRange.Columns(1).Find("", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchFormat:=True)
    If Not c Is Nothing Then [b1] = c.Value
    Application.FindFormat.Clear
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 23.09.2012, 12:56   #7
tibhar940
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 79
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Код:
Sub www()
    Dim c As Range
    Application.FindFormat.Clear
    Application.FindFormat.Interior.ColorIndex = 3
    Set c = ActiveSheet.UsedRange.Columns(1).Find("", LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchFormat:=True)
    If Not c Is Nothing Then [b1] = c.Value
    Application.FindFormat.Clear
End Sub
Спасибо. А если я к примеру хочу перенести значение красной ячейки на "Лист2"?
УЖе разобрался. Спасибо не надо)

Последний раз редактировалось tibhar940; 23.09.2012 в 13:10.
tibhar940 вне форума Ответить с цитированием
Старый 25.09.2012, 10:07   #8
tibhar940
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 79
По умолчанию

Подскажите еще один момент. Допустим имеется столбец (1). Можно ли вычленить из него все ячейки красного цвета и произвести с ними какие-либо операции. Допустим...сложение.

Заранее спасибо.
tibhar940 вне форума Ответить с цитированием
Старый 25.09.2012, 10:34   #9
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Код:
Function СУММ_ЦВЕТ(Диапазон_суммирования As Range, Цвет_берется_из_ячейки As Range)
For Each cll In Диапазон_суммирования.Cells
If cll.Interior.ColorIndex = Цвет_берется_из_ячейки.Interior.ColorIndex Then
    summa = summa + cll.Value
End If
Next
СУММ_ЦВЕТ = summa
End Function
Второй вариант:
Код:
Function суммеслицвет(диапазон As Range, образец As Range, диапазон_суммирования As Range)
r = 0
simma = 0
For Each sh In диапазон
r = r + 1
If sh.Interior.ColorIndex = образец.Interior.ColorIndex Then
t = 0
    For Each sh1 In диапазон_суммирования
    t = t + 1
    If r = t Then simma = simma + sh1.Value
    Next
End If
Next
суммеслицвет = simma
End Function
и третий в файле
Вложения
Тип файла: rar Сумма ячеек выделенных цветом.rar (32.0 Кб, 16 просмотров)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 25.09.2012, 10:52   #10
tibhar940
Пользователь
 
Регистрация: 31.07.2012
Сообщений: 79
По умолчанию

Цитата:
Сообщение от staniiislav Посмотреть сообщение

и третий в файле
Шикарно. Вот третий вариант мне идеально подходит. Везде однотипное форматирование. Останется просто макросом нужное значение формулы записать в нужную ячейку и вуаля.

Спасибо!
tibhar940 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение ячеек цветом strannick Microsoft Office Excel 5 25.08.2012 16:51
Сравнение 2-х ячеек, выделение цветом пустой Alex5667 Microsoft Office Excel 3 07.10.2011 15:06
Блокировка ячеек, работа с цветом Dims Microsoft Office Excel 9 11.07.2011 12:14
Выделение цветом ячеек в StringGrid (Delphi) Lost'яра)) Помощь студентам 2 03.10.2010 10:55
Выделение цветом определённых ячеек Bbalt Microsoft Office Excel 5 13.02.2009 12:07