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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Своя формула в MS Excel, Хочу сделать свою формулу 
:(
    Опции темы
valex13
Дата 28.12.2004, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

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



Мне неободимо сделать формулу, которая бы в зависимолти от значения закрашивала бы ячейку в которой находиться формула определенным цветом. Вот код:
Код

Dim xlMyColor As Long

Public Function ИЗМЕНИТЬЦВЕТ(Значение As Double, Порог As Double, Цвет As Long) As Double
If Значение >= Порог Then
  xlMyColor = Цвет
  Call ChangeColor
End If
  ИЗМЕНИТЬЦВЕТ = Значение
End Function


Private Sub ChangeColor()
 With Cells(ActiveCell.Row, ActiveCell.Column).Interior
       .ColorIndex = xlMyColor
       .Pattern = xlSolid
   End With
End Sub


Цвет не меняется. Я смотрел в дебуге. Значения .ColorIndex не изменяются. Если отдельно запустить процедуру ChangeColor все работает. В чем может быть причина???
Не пойму. Может быть во время "расчета" формулы некоторые атрибуты ячейки Readonly??
PM MAIL ICQ   Вверх
Staruha
Дата 28.12.2004, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Я так делаю в VBA
Private Sub CommandButton1_Click()

Код

Dim d As Integer
Dim v As Integer

d = UsedRange.Rows.Count

  For rwIndex = 2 To d

         v = UsedRange.Columns.Count
            For r = 2 To v

      If Cells(rwIndex, r).Value > 0 Then
                 Cells(rwIndex, r).Interior.ColorIndex = 39
     Else
              Cells(rwIndex, r).Interior.ColorIndex = 0

   End If

Next r

Next rwIndex

End Sub

Можно ,конечно и в разные цвета выкрасить


--------------------
Возмездие настигнет
PM MAIL   Вверх
cardinal
Дата 28.12.2004, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Старуха, что же у тебя с кодом не лады такие? smile По всему экрану расбросан smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Staruha
Дата 28.12.2004, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Копировала из проги. Помнишь мы Табель - календарь делали. Ну вот я там выходные крашу и значения. Удалила что не в тему .Вот так получилось. smile


--------------------
Возмездие настигнет
PM MAIL   Вверх
valex13
Дата 29.12.2004, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

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



Проблема не втом, что не расскрашивает, или я не знаю как делать, а в том ,что из формулы не раскрашивает.
Если процедуру ChangeColor() навешать на кнопку, то работает, а если при выполнении формулы, то нет.
В чем проблема!!

Старуха ты скопируй код в макрос к Екселю и попробуй. Будет у тебя работать или нет?
PM MAIL ICQ   Вверх
Akina
Дата 29.12.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



valex13
F А почему просто не задействовать условное форматирование?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Гость_Старуха
Дата 29.12.2004, 15:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











С твоим кодом я смогу разобраться не сейчас.Мой код работает.
Вечером посмотрю
  Вверх
Staruha
Дата 29.12.2004, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

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



Так . Пользовательская функция есть. А три параметра где брать?
И потом

Цитата
Код

Private Sub ChangeColor()
With Cells(ActiveCell.Row, ActiveCell.Column).Interior
      .ColorIndex = xlMyColor
      .Pattern = xlSolid
  End With

ты реагируешь изменением цвета на изменение цвета.


--------------------
Возмездие настигнет
PM MAIL   Вверх
valex13
Дата 30.12.2004, 06:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 29.1.2003
Где: Иркук. область, г . Иркутск

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



Первый это любое число, которое ты хочешь показать в ячейки. Второй - порог. Если число, которое ты передаешь в функцию больше порога, то окрашивать текущую ячейку цветом. Цвет - это третьий параметр.

Вот пример использования:
В ячейке B1 напиши =ИЗМЕНИТЬЦВЕТ(A1,2,5)
А в ячйку A1 помести число 5.
Добавлено @ 06:19
Старуха
xlMyColor - изменяется в функции и вызывается процедура изменения цвета ячейки. Отдельно я ее написал, чтобы можно было ее протестировать отдельно от функции - и она работает, а вот совместно не хотят.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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