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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 14:29   #1
Alex_91
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 14
Лампочка макрос изменения цвета шрифта ячейки, при наличии определенной буквы

доброго времени суток. вообщем такой вопрос.
посредством vba нужен макрос, который ищет определенную букву в ячейках и если данная буква присутствует то закрашивает содержимое ячейки в определнный цвет(меняет шрифт) а если нет той буквы то не меняет ничего.
Alex_91 вне форума Ответить с цитированием
Старый 21.05.2012, 14:44   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

не нужен Вам макрос.
задача решается с помощью условного форматирования.

хотя с другой стороны, если макрос писать не Вам, а с условным форматированием разбираться лично Вам - то проще пусть "добрый дядя" макрос напишет
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.05.2012, 14:56   #3
Alex_91
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 14
По умолчанию

надо именно через макрос...
Alex_91 вне форума Ответить с цитированием
Старый 21.05.2012, 15:03   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от Alex_91 Посмотреть сообщение
надо именно через макрос...
Выделите диапазон поиска и нажмите на кнопку, впишите что нужно искать
Вложения
Тип файла: rar покрас текста по условию VBA.rar (10.9 Кб, 70 просмотров)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 21.05.2012, 15:31   #5
Alex_91
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 14
По умолчанию

вот у меня макрос, он разлагает содержимое столбца ячейки разделенные пробелом на составляющие, где каждый разделенный компонент будет оформлен отдельным стоолбцом. и тут же надо изменить шрифт той ячейки где содержиться символ "h" на красный цвет.

Sub mak()
Dim d As String
Dim dl As String
Dim qw() As String
y = 0
NumRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To NumRow
s = Cells(i, 1)
qw = Split(s)
For k = LBound(qw) To UBound(qw)
If qw(k) <> "" Then
y = y + 1

IF INSTR(qw(k),"h")THEN COLUMNS(Y+1).Font.ColorIndex = 3

Cells(i, y + 1) = qw(k)
End If
Next k
y = 0
Next i
End Sub

разделять то разделяет а вот с изменением шрифта какие то проблемы.ы
Изображения
Тип файла: jpg Без имени-1.jpg (119.4 Кб, 178 просмотров)
Alex_91 вне форума Ответить с цитированием
Старый 21.05.2012, 15:41   #6
Alex_91
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 14
По умолчанию

а с условным форматирование то для поиска там нужна не только буква "h" а чтобы перекрашивало даже слово в котором содержиться эта буква
Alex_91 вне форума Ответить с цитированием
Старый 21.05.2012, 16:01   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

минус вложенного файла - там нет макросов,
плюс - закрашиваются все ячейки содержащие символ "h".
если в колонке А будет тысяча или 100 тысяч значений - без всяких макросов все может быть закрашено за 20-30 секунд.
Вложения
Тип файла: rar ЗакраситЪ.rar (5.9 Кб, 49 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.05.2012, 21:45   #8
Alex_91
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 14
По умолчанию

ладно с условным форматированием, а вот в чем ошибка моего макроса? почему не так закрашивает?
Alex_91 вне форума Ответить с цитированием
Старый 24.05.2012, 21:44   #9
Alex_91
Пользователь
 
Регистрация: 12.05.2010
Сообщений: 14
По умолчанию

Код:
Sub qw()


Dim d As String
Dim dl As String
Dim qw() As String
y = 0
NumRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To NumRow
  s = Cells(i, 1)
  qw = Split(s)
  For k = LBound(qw) To UBound(qw)
    If qw(k) <> "" Then
      y = y + 1
 
      
     If InStr(qw(k), "h") Then
     Cells(i, y + 1).Font.ColorIndex = 3
     Else
     Cells(i, y + 1).Font.ColorIndex = 1
        End If
        
        
      Cells(i, y + 1) = qw(k)
    End If
  Next k
  y = 0
Next i
End Sub
вот доделал))кому может пригодиться)))
Alex_91 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для защиты ячеек по наличии в них данных ru3000 Microsoft Office Excel 16 16.10.2022 22:14
Макрос для изменения цвета заливки rootking Microsoft Office Excel 6 11.01.2011 10:38
макрос для изменения содержимого ячейки Cawa1990 Microsoft Office Excel 6 24.03.2010 18:19
Распознование цвета шрифта Maxx Microsoft Office Excel 1 03.12.2009 13:12
как заставить работать макрос при определенном значении ячейки? Град Microsoft Office Excel 5 30.05.2008 16:06