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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 11:33   #1
suxo
 
Регистрация: 25.05.2010
Сообщений: 8
По умолчанию Изменить цвет Range - не выходит

Помогите пожалуйста, уже всю башку отбил. отдельно работает, а при вызове - только наполовину.
Код:
Private Sub Oformit()
Dim ro As String:
Dim sost As String
   ro = ActiveCell.Row
   sost = "J" & ro

Sheets("rates").Range(sost).Interior.ColorIndex = 3
Sheets("rates").Range(sost).Value = "оформить"

End Sub
значение меняется а ЦВЕТ - нет. блин что не так то может быть? я уж вообще по всякому.

ДОПОЛНЕНИЕ

когда я запускаю эту процедуру отдельно - цвет меняется, но она вызывается у меня отсюда

Код:
If Target.Cells.Count > 1 Then Exit Sub
 If Not Application.Intersect(Range("i5:i777"), Target) Is Nothing Then
  
  If ActiveCell.Value = "надо" Then
  Run "Oformit()"
 End If
 
 End If
а когда делаю вот так, то все работает вновь.

Код:
If Target.Cells.Count > 1 Then Exit Sub
 If Not Application.Intersect(Range("i5:i777"), Target) Is Nothing Then
  
  If ActiveCell.Value = "надо" Then
    ro = ActiveCell.Row
    sost = "J" & ro
    Sheets("rates").Range(sost).Interior.ColorIndex = 3
    Sheets("rates").Range(sost).Value = "оформить"
  End If
 
 End If

Последний раз редактировалось suxo; 09.06.2010 в 11:42.
suxo вне форума Ответить с цитированием
Старый 09.06.2010, 12:13   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

А если сделать так:
Код:
Private Sub Oformit(rCell as range)
Dim sost As String
sost = "J" & rCell.Row
Sheets("rates").Range(sost).Interior.ColorIndex = 3
Sheets("rates").Range(sost).Value = "оформить"
End Sub
Код:
If Target.Cells.Count > 1 Then Exit Sub
 If Not Application.Intersect(Range("i5:i777"), Target) Is Nothing Then
  If ActiveCell.Value = "надо" Then'здесь может надо Target проверять?- If Target.Value = "надо" Then
  Call Oformit(ActiveCell)'Хотя я бы здесь передавал все же Target - Call Oformit(Target)
 End If

 End If
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru

Последний раз редактировалось The_Prist; 09.06.2010 в 12:23.
The_Prist вне форума Ответить с цитированием
Старый 09.06.2010, 12:19   #3
suxo
 
Регистрация: 25.05.2010
Сообщений: 8
По умолчанию

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

п.с. я если честно просто забил на процедуру и встроил код в сам текст проверки, у меня не такой большой код всего документа чтобы запариваться с процедурами(это я так себя отговорил от еще пары часов головаломания) но вообще конечно интересно отчего так происходит.
suxo вне форума Ответить с цитированием
Старый 09.06.2010, 16:02   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить цвет окна Syltan Win Api 2 10.12.2010 20:52
Изменить цвет в слове valerij Microsoft Office Excel 25 01.11.2009 17:58
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05
цвет ссылки изменить wolf950 HTML и CSS 3 16.03.2009 18:32
Как изменить цвет Михаил Юрьевич Общие вопросы Delphi 5 14.01.2008 17:38