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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 13:39   #21
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

не пойму, как это работает..например, для 17 строки

Cells(17, i - 2) = Application.Average(Intersect(.Rows ("2:" & Rows.Count), _
.Columns(i).SpecialCells(xlCellType Visible)))

Т.е. при сортировке автофильтра - макрос берет среднее значение из отфильтрованных данных и вставляет в 17 строку в начиная с 3 столбца?
ruavia3 вне форума Ответить с цитированием
Старый 01.06.2009, 13:59   #22
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

i - это текущий номер столбца. В листе "данные" это цикл от 5 до 17.
Вышеупомянутая строка кода в ячейку строки 17 столбца i-2 (т.к. на листе "Sheet1" данные заносятся, начиная со столбца 3), помещает среднее арифметическое (Application.Average) ячеек пересечения диапазонов от 2-й до последней строки листа и всех видимых ячеек столбца i. Другими словами - отфильтрованные ячейки столбца i без заголовка.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.06.2009, 14:03   #23
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

в случае когда перед выбранной датой нет данных, например если в приложенном примере выбрать усл.1 = 1, усл.2 = а, усл. 3 = №1, дата 1 апреля 2009 года, то в ячейке А2 отразится начало недели - 30 марта. Диапазон С3:O9 нужно заполнить согласно дням недели, т.е. данные за 1 апреля должны стоять напротив этой даты, т.е. в строке 5 (в примере я ее выделил серым цветом).
Сейчас данные за 1 апреля записываются в первую строку диапазона, т.е. стр.3.
Вложения
Тип файла: rar file_5.rar (20.3 Кб, 11 просмотров)

Последний раз редактировалось ruavia3; 02.06.2009 в 09:27.
ruavia3 вне форума Ответить с цитированием
Старый 02.06.2009, 12:02   #24
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

В связи с этим наверное не точно подсчитывается среднее за неделю.
ruavia3 вне форума Ответить с цитированием
Старый 02.06.2009, 12:17   #25
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Все так?
Вложения
Тип файла: rar file_6.rar (20.6 Кб, 17 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.06.2009, 12:47   #26
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Да, все работает. Спасибо)))
ruavia3 вне форума Ответить с цитированием
Старый 02.06.2009, 13:23   #27
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Код:
Next
            .[A:D].AutoFilter Field:=4, Criteria1:=z
            If .Cells.SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
Почему в тот раз было >0, а сейчас 1 ?
ruavia3 вне форума Ответить с цитированием
Старый 02.06.2009, 13:28   #28
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Прошлый раз было не правильно. Если после применения фильтра, количество видимых строк = 1, то значит, что строк, удовлетворяющих всем условиям фильтра нет. Есть только одна строка с заголовком.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.06.2009, 17:16   #29
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Все равно не работает. Я изучил полностью код, да теперь если выбирать усл.1 = 1, усл.2= a, усл.3 = №1 - все работает) Но если выбрать №3, то данные не подгрузятся посмотрите Ваше последнее вложение.
ruavia3 вне форума Ответить с цитированием
Старый 03.06.2009, 04:17   #30
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Все именно так, как м задумано. Скажите, а каким образом, при Условие1 = "1", условие2 = "a", Вам удается выбрать "№3" ? При выборе первых двух условий, в ComboBox "условие3" формируется список допустимых для ввода значений. Т.е. тех, которые удовлетворяют первым двум условиям. Среди этих значений нет "№3". Можно, конечно, ввести это значение вручную, но подгрузки не произойдет, т.к. оно не удовлетворяет условиям.
Таким образом, данные подгружаются только тогда, когда выполняются все условия и отфильтрованные по этим условиям значения попадают в выбранный диапазон дат.
Что-то не так?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отследить нажатие кнопки со стрелкой для раскрытия поля со списком Bezdar Microsoft Office Excel 4 16.03.2010 12:47
как создать процедуру для кнопки которая еще не создана? DeepPurple Общие вопросы Delphi 10 21.05.2009 13:50
Насколько можетбыть коротким код для решения задчки для Экселя? saga Microsoft Office Excel 0 04.04.2009 13:35
Код рекламной кнопки Extreme HTML и CSS 1 08.03.2009 16:03
Delphi. Код для кнопки. Xeon332 Помощь студентам 6 20.09.2008 07:03