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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 22:45   #11
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

If WorksheetFunction.CountA(Range(Cell s(i, 1), Cells(i, 4))) < 4 Then
Range(Cells(i, 1), Cells(i, 4)).Select
Exit For
End If

вот вам подсказка
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234

Последний раз редактировалось R Dmitry; 09.02.2011 в 22:51. Причина: поправил формулу
R Dmitry вне форума Ответить с цитированием
Старый 09.02.2011, 23:53   #12
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию Поправил

Код:
Sub Main3()
Dim i As Long
For i = 500 To 8 Step -1
If WorksheetFunction.CountA(Range(Cells(i, 2), Cells(i, 8))) > 0 Then
Range(Cells(i, 2), Cells(i, 7)).Select
Exit For
End If
Next
End Sub
условие 1 выполняется а как завести условие 2 ?...
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 00:03   #13
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

так вроде но чето неправильно написал
Код:
Sub Main3()
Dim i As Long
For i = 500 To 8 Step -1
If WorksheetFunction.CountA(Range(Cells(i, 2), Cells(i, 8))) > 0 Then
Range(Cells(i, 2), Cells(i, 7)).Select
If WorksheetFunction.CountA(Range(Cells(i, 2), Cells(i, 8))) = 6 Then
Range(Cells(i + 1, 2), Cells(i + 1, 7)).Select
Exit For
End If
Next
End Sub
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 00:31   #14
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию вроде работает

так работает как надо - только еще одна проблемка

Код:
Sub Main3()
Dim i As Long
For i = 500 To 8 Step -1
If WorksheetFunction.CountA(Range(Cells(i, 2), Cells(i, 8))) = 6 Then
Range(Cells(i + 1, 2), Cells(i + 1, 7)).Select
With Selection.Interior
        .ColorIndex = 35
        .Pattern = xlSolid
    End With
Exit For
End If
Next
End Sub
если строка полностью заполнена то выделяется последующий незаполненный диапазон и делается цвет незаполненного диапазона

одно но - с заполненной строки от предыдущего ее заполнения цвет не снимается

Последний раз редактировалось Uralmaster; 10.02.2011 в 00:42.
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 00:33   #15
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
For i = 2 To 500
 If WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 6))) < 6 Then
 Range(Cells(i, 1), Cells(i, 6)).Interior.Color = 49407
 Exit For
 Else
 Range(Cells(i, 1), Cells(i, 6)).Interior.Color = xlNone
 End If
Next
Application.EnableEvents = True
End Sub
проверяйте, вставьте в модуль листа
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 10.02.2011, 00:35   #16
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Вы не с Урала случайно? специально так задачи ставите?
Цитата:
нет значения в колонке С, D, E, F, G, H, I, J, K
с С по К это колонки с 3 по 11 (всего 9 шт).
потом на рисунке у Вас явно просматривается 6 колонок, в которых поверяются данные.
и наконец Вы пишете код
Цитата:
If WorksheetFunction.CountA(Range(Cell s(i, 2), Cells(i, 8))) > 0 Then
,который проверяет 7 колонок с В по Н.

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

дополню:
яркий пример постом выше. Дима проверяет колонки с А по F. Вам Это надо?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 10.02.2011 в 00:39.
IgorGO вне форума Ответить с цитированием
Старый 10.02.2011, 00:55   #17
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Не ужели не помогло ?
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 10.02.2011, 01:03   #18
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Дима, как оно поможет?
самый первый пост гласил "проверяем диапазон с С4:К500".
Для начала - стоило начать цикл с 4-й строки. Если в А2 пусто, то на этом Ваша процедура и остановится и окажется совершенно бесполезной, как и время потраченное на ее написание. Вы знаете что в А2, Вы видели данные?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.02.2011, 01:33   #19
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

R Dmitry

переделал под свой диапазон
Диапазон B8:G500

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
For i = 8 To 500
 If WorksheetFunction.CountA(Range(Cells(i, 2), Cells(i, 7))) < 6 Then
 Range(Cells(i, 2), Cells(i, 7)).Interior.Color = 49407
 Exit For
 Else
 Range(Cells(i, 2), Cells(i, 7)).Interior.Color = xlNone
 End If
Next
Application.EnableEvents = True
End Sub
Работает только вместо xlNone синим заливает почему то

Последний раз редактировалось Uralmaster; 10.02.2011 в 01:46.
Uralmaster вне форума Ответить с цитированием
Старый 10.02.2011, 01:36   #20
Uralmaster
Форумчанин
 
Регистрация: 21.01.2011
Сообщений: 118
По умолчанию

IgorGO
Игорь не ругайся - я действительно с Урала
А диапазон поменял потому что скриншоты выложил с этим диапазоном

Последний раз редактировалось Uralmaster; 10.02.2011 в 01:42.
Uralmaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенести значение последней заполненной строки Jazz1200 Microsoft Office Excel 4 12.12.2010 17:11
Заполнение последней строки StringGrid нулями. Asblue Помощь студентам 2 01.11.2010 15:05
Добавление в TMemo, последней строки из TStringList OPF_Nik Помощь студентам 3 31.01.2010 17:35
Выделение цветом последней строки DBGrig Yura_S Помощь студентам 2 28.10.2009 08:35
Поиск последней записи в определенной строке Maxx Microsoft Office Excel 5 04.03.2009 14:01