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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2012, 22:03   #1
caustic_
Новичок
Джуниор
 
Регистрация: 25.12.2012
Сообщений: 4
Лампочка Проверка диапазона на наличие значений в определенных ячейках

Добрый день!

хочу обратиться за помощью в написании макроса

есть небольшая табличка со студентами.
наименование и несколько столбцов со значениями.

И у меня уже есть макрос который проверяет значение каждой ячейки в диапазоне C:G по каждой строчке, и если хоть одна окажется со значением <=0 (либо пуст.ячейка = 0), ячейка 1ого столбца закрашивается в красный цвет:

Код:
Sub RedColor()
Dim lLastRow As Long

    lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

Dim s As Range
    For Each s In ActiveSheet.Range("C2:G" & lLastRow)
                If IsNumeric(s) Or IsEmpty(s) Then
            If s <= 0 Then Cells(s.Row, 1).Interior.Color = vbRed
        End If
    Next

End Sub
Трудность в том, что его нужно научить мыслить немного шире:

для каждого студента, есть одноименная вкладка со списком значений - это некая часть шапки таблицы из 1ого листа, по которым только и нужно проверять значения в ячейках напротив студента.
Т.е. важно, чтобы именно по этим колонкам (шапки которых прописаны в одноименных со студентами вкладках (студент1, студент2 и тп) проверялось заполненность положительными значениями. На значения остальных колонок (не прописанных во вкладке с именем студента) - не обращать внимание

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

с уважением
Вложения
Тип файла: rar Книга_1 - копия.rar (3.8 Кб, 39 просмотров)

Последний раз редактировалось caustic_; 25.12.2012 в 22:15.
caustic_ вне форума Ответить с цитированием
Старый 25.12.2012, 22:32   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от caustic_ Посмотреть сообщение
...нужно проверять значения в ячейках напротив студента.
Т.е. важно, чтобы именно по этим колонкам (шапки которых прописаны в одноименных со студентами вкладках (студент1, студент2 и тп) проверялось заполненность положительными значениями.
Но ведь в листах студентов нет никаких значений?
Так что проверять-то?
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 25.12.2012, 22:53   #3
caustic_
Новичок
Джуниор
 
Регистрация: 25.12.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge 007 Посмотреть сообщение
Но ведь в листах студентов нет никаких значений?
Так что проверять-то?
в листах с именами студентов (студент 1, студент 2, студент 3) есть список - это часть шапки таблицы из 1ого листа

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

P.S. предвидя возможное предложение сразу скажу: УФ к сожалению не подойдет. его нельзя прописать в макросе. а это ключевое условие
caustic_ вне форума Ответить с цитированием
Старый 25.12.2012, 22:58   #4
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от caustic_ Посмотреть сообщение
...УФ к сожалению не подойдет. его нельзя прописать в макросе...
caustic_, отрыжка киберфорума?
Юзайте Conditional Formatting в VBA, можно его прописать
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 25.12.2012, 23:06   #5
caustic_
Новичок
Джуниор
 
Регистрация: 25.12.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge 007 Посмотреть сообщение
caustic_, отрыжка киберфорума?
Юзайте Conditional Formatting в VBA, можно его прописать
не совсем.
просто знаю вас по тому же кибер-форуму как специалиста в области Excel а не VBA, как вы всегда себя позиционировали
caustic_ вне форума Ответить с цитированием
Старый 25.12.2012, 23:21   #6
caustic_
Новичок
Джуниор
 
Регистрация: 25.12.2012
Сообщений: 4
По умолчанию

кстати, макрос решающий мою задачу. может кому нить пригодиться:

Код:
Option Explicit 

Sub RedColor() 
Dim lLastRow As Long 
Dim iStudent As String 
Dim iVremDen As String 
Dim iFound As Range 

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row 

Dim s As Range 

For Each s In ActiveSheet.Range("C2:G" & lLastRow) 
If IsNumeric(s) Or IsEmpty(s) Then 
If s <= 0 Then 
iStudent = Cells(s.Row, 1) 
iVremDen = Cells(1, s.Column) 
Set iFound = Sheets(iStudent).Columns(1).Find(iVremDen, , xlFormulas, xlWhole) 
If Not iFound Is Nothing Then 
Cells(s.Row, 1).Interior.Color = vbRed 
End If 
End If 
End If 
Next
caustic_ вне форума Ответить с цитированием
Старый 25.12.2012, 23:43   #7
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от caustic_ Посмотреть сообщение
... знаю вас по тому же кибер-форуму как специалиста в области Excel а не VBA, как вы всегда себя позиционировали
Времена меняются
Теперь и VBA балуемся
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск определенных значений в таблице Alchi09 SQL, базы данных 24 06.09.2012 18:13
Сравнение определенных значений в строках k.soldatova Помощь студентам 1 01.07.2011 16:56
Выделение диапазона по наличию в ячейке (ячейках) текста или метки as-is Microsoft Office Excel 7 08.03.2010 18:09
Проверка значений диапазона Verano naranjo Microsoft Office Excel 1 24.02.2010 11:14
Выплывающий календарь в определенных ячейках Neo007 Microsoft Office Excel 1 12.09.2008 12:50