Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Присвоить значение ячейки в зависимости от цвета 
:(
    Опции темы
fraise
Дата 26.4.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Здравствуйте,
подскажите, пожалуйста, как присвоить значение ячейки в зависимости от цвета.
Заранее спасибо.

PM MAIL   Вверх
masterofmind
Дата 27.4.2009, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 1.4.2007

Репутация: нет
Всего: нет



хммм, обычно хотят наоборот. ;) Если так - тебе нужно условное форматирование, иначе :

Код

Public Function ОпределитьЗначениеОтЦвета (Диапазон as Range, цвет as Integer) As '[тут пишешь тип данных которые нужно присвоить]

Application.violate true

dim Ячейка as Range

for each ячейка in Диапазон

if ячейка.Interior.Color=цвет then ОпределитьЗначениеОтЦвета = '[твое значение]

next

' Лучше всего создай здесь блок  CASE со значениями
End Function




Потом эту функцию вызываешь напрямую из листа. 
Цвет в параметрах функции - это целое число, т.е. тебе ннужно передать код цвета. Я бы сделал отдельный лист, там перечислил ячейки с цветом (раскрасил их) и в функции ссылался бы жестко на них. Таким образом, при изменении вводных - функция отсаеться работоспособной

Это сообщение отредактировал(а) masterofmind - 27.4.2009, 00:39
PM MAIL   Вверх
fraise
Дата 27.4.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Дело в том, что я совсем не представляю процесс "жесткого ссылания". 
Подскажи, пожалуйста, как это сделать.
PM MAIL   Вверх
masterofmind
Дата 27.4.2009, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 1.4.2007

Репутация: нет
Всего: нет



Оххохо...ты бы формализовал задачу, а?  smile 

Я бы сделал так: 
1. Создал новый лист, в котором в две колонки указал цвет и значение. Что-то вроде такого: Выделили А1 красным, а в В1 написал бы текст "плохо",  А2 желтым, а в В2 текст "Уже лучше" и т. д.  Тогда функция примет вид:

Код

Public Function ОпределитьЗначениеОтЦвета (Ячейка as Range, Цвет as Range, значение as Range) As Variant
Application.violate true
if ячейка.Interior.Color=цвет.interior.Color then ОпределитьЗначениеОтЦвета = значение.value
end function


Итого пишешь в нужную ячейку : =ОпределитьЗначениеОтЦвета([Ячейка которая будет сравниваться], $A$1,$B$1). и протягиваешь.
Знак $ задает абсолютну ссылку, т.е. при протягивании адреса ячеек не изменяться. В итоге получишь  значение "плохо" для всех красных ячеек.




Это сообщение отредактировал(а) masterofmind - 27.4.2009, 01:17
PM MAIL   Вверх
fraise
Дата 27.4.2009, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Спасибо, все работает!!!
На другом сайте, мне помогли найти беспрограммное решение моей проблемы smile
Думаю, что могу выложить его и тут.

"Можно это сделать и не программно. Нажмите CTRL+H, далее кнопку Параметры. В строке Найти ничего не указывайте, нажмите Формат и на вкладке Вид выберите цвет ячеек, в которые вы хотите добавить значения. В строке Заменить на просто укажите значение, которое вы хотите вставить. Нажимаете Заменить все и Готово."
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.