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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2011, 04:18   #1
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию Не работает формула

Не работает формула условного форматирования по цвету шрифта - по цвету ячеек работает ..... Что неправильно?
Вложения
Тип файла: rar условное форматирование.rar (7.6 Кб, 9 просмотров)
Uralmaster вне форума Ответить с цитированием
Старый 27.01.2011, 04:36   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target = "" Then
        Target.Interior.ColorIndex = xlNone: Exit Sub
    End If
    Dim x As Range, s As String
    s = Application.Trim(Replace(Split(Target, "-")(0), "", ""))
    Set x = Sheets(2).[A:A].Find(Split(s, " ")(0))
    If x Is Nothing Then Exit Sub
    If x.Interior.ColorIndex <> xlNone Then Target.Interior.ColorIndex = x.Interior.ColorIndex
    If x.Font.ColorIndex <> xlNone Then Target.Font.ColorIndex = x.Font.ColorIndex
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.01.2011, 04:38   #3
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Еще бы она работала. Не может быть Worksheet_Change, Worksheet_Change2 и т.д. Работать будет только Worksheet_Change.
Сделайте так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target = "" Then
        Target.Interior.ColorIndex = xlNone
    End If
    Dim x As Range, s As String
    s = Application.Trim(Replace(Split(Target, "-")(0), "", ""))
    Set x = Sheets(2).[A:A].Find(Split(s, " ")(0))
    If Not x Is Nothing Then If x.Interior.ColorIndex <> xlNone Then Target.Interior.ColorIndex = x.Interior.ColorIndex
    If Target = "" Then
        Target.Font.ColorIndex = xlNone: Exit Sub
    End If
    Set x = Sheets(2).[A:A].Find(Split(s, " ")(0)) ' здесь исправил на [A:A], если нужно - вернете, не нужно - можно удалить строку.
    If x Is Nothing Then Exit Sub
    If x.Font.ColorIndex <> xlNone Then Target.Font.ColorIndex = x.Font.ColorIndex
End Sub
и будет Вам счастье. Вижу опоздал. Привет, Игорь. Меня смутил диапазон В:В. Может автору так и нужно?
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 27.01.2011 в 04:41.
kuklp вне форума Ответить с цитированием
Старый 27.01.2011, 04:48   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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

Последний раз редактировалось IgorGO; 27.01.2011 в 04:51.
IgorGO вне форума Ответить с цитированием
Старый 27.01.2011, 05:36   #5
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Я тоже искал формулы:-) Хотел уже макрос писать по поиску форматкондишен и наткнулся на макросы события.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 27.01.2011, 08:16   #6
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

Огромное спасибо за поддержку !!!
Все работает-единственное как сделать так чтоб формат текста (жирный,курсив и пр) тоже делал в макросе

Последний раз редактировалось Uralmaster; 27.01.2011 в 09:26.
Uralmaster вне форума Ответить с цитированием
Старый 27.01.2011, 18:39   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот так:
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    If Target.Count > 1 Then Exit Sub
    If Target = "" Then
        Target.Interior.ColorIndex = xlNone: Exit Sub
    End If
    Dim x As Range, s As String
    Application.EnableEvents = False
    s = Application.Trim(Replace(Split(Target, "-")(0), "", ""))
    Set x = Sheets(2).[A:A].Find(Split(s, " ")(0))
    If x Is Nothing Then Exit Sub
    x.Copy
    Target.PasteSpecial Paste:=xlPasteFormats
    Application.EnableEvents = True
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формула не работает по четным дням vostok Microsoft Office Excel 16 23.01.2011 14:23
Не во всём указанном диапазоне работает формула. oleg_sh Microsoft Office Excel 2 02.03.2010 13:00
не работает формула КОНМЕСЯЦА() ruavia3 Microsoft Office Excel 7 26.02.2010 23:06
Формула с ДЛСТР() работает корректно, хотя ... Konstantin_Z Microsoft Office Excel 4 22.12.2009 15:21
Не работает формула Если mistx Microsoft Office Excel 3 12.08.2009 18:18