Страницы: 1
RSS
Макрос поиска информации по двум критериям
 
Добрый день, форумчане! Прошу Вас оказать помощь в написании макроса (файл с формой прилагается). Использование фильтров не подходит.
Есть 3 столбца на 1 листе. Через форму вводится название базы (независимо от регистра), дата. Если база и дата совпадают (в одной строке и обязательно введена база и дата), то выводится результат столбца "Выдано" анологичной строки. Если результатов несколько - то сумма результатов столбца "Выдано".
Прошу по возможности вкратце указать комментарии.
Заранее огромное спасибо.
 
Копия темы: http://programmersforum.ru/showthread.php?t=226614

Цитата
то выводится результат столбца "Выдано"
Куда выводится? На форму в поле? В виде сообщения? В отдельную ячейку?
 
Еще раз спасибо за отклик. Сумма выводится на форму под кнопкой "Результат" (Toolbox - Label - в файле name - LabelSum)
 
В вашу форму вставила макрос обработки, только на первый взгляд такой формой не удобнее пользоваться чем тем же автофильтром с промежуточными итогами. Два поля вручную вбивать, бррр.
Работать надо не 12 часов, а головой.
 
Спасибо, но при вводе названия базы и даты (в данном случае они в одной строке), сумма не выводится. Выводится сообщение сообщение об ошибке и подсвечивается MsgBox iSum.
 
Значит вы вводите пару значений которой не существует.
Добавила обработку ошибок.
Работать надо не 12 часов, а головой.
 
Спасибо большое за помощь.
Есть 2 ньюанса:
1) как написать в макросе, что если название базы введено верно, а дата нет, сообщение об ошибке (например, есть база "Проверено" и к ней относится только дата 20.01.2013, но вводим вместо 20.01.2013 любую другую дату)
2) сейчас только один раз можно ввести данные в форму (чтобы ввести повторно и получить результат необходимо закрыть форму и затем заново запустить). Можно ли обнулять информацию, вносить ее заново и получать ответ без закрытия форму?
Спасибо за помощь и содействие
 
Цитата
2) ...Можно ли обнулять информацию, вносить ее заново и получать ответ без закрытия форму?
Так подойдёт?
 
Спасибо за ответ на 2 вопрос. Завтра постараюсь разобраться с вопросом 1 (если у Вас есть соображения, поделитесь). Возможно необходима будет помощь, обращусь еще раз.
Еще раз спасибо.
 
Сделала "грубый" комбобокс, грубый потому что нет отслеживания повторений и сортировки по возрастанию, это к возможному решентию по пункту1.
Что бы комбобокс заработал надо на соседнюю кнопочку нажать и выбрать из предложенных вариантов.
Изменено: Leanna - 01.02.2013 13:40:03
Работать надо не 12 часов, а головой.
 
Спасибо ))). Хотел бы уточнить ряд ньюансов по данному макросу:
1) для чего в коде используется iQ = iQ + 1
        If Cells(i, 1) & Cells(i, 2) = txtBase & txtData Then
            iSum = iSum + Cells(i, 3)
           iQ = iQ + 1
        End If
Если отключить данную строку, ровным счетом ничего не меняется (или я не прав).

2) при вводе названия правильной базы и не правильной даты (если не использовать комбобокс, за что еще раз спасибо), высвечивается Сумма выдач =, а не "Не корректно введены данные ". Эксперементировал, ничего дельного не получатся.
 
1) Строка  просто выдает количество найденных подходящих значений, её можно использовать для решения по второму пункту.
2)Если Q - кол-во найденных записей = нет - то данные введены некорректно вписала в код, а обработку ошибок убрала.
3) суммирование в Проверено1 происходит из за того что Dt="" или значение кобобокса = "" а у тебя в условии стоит Or
А для чего создали отдельное ткстовое поле? (оно и создает эту ошибку со значением "") ведь можно в комбобокс вписать значение, т.е. его как текстовое поле можно использовать, не обязательно выбирать значение из выпадающего списка
Работать надо не 12 часов, а головой.
 
Спасибо всем за помощь. До скорой связи.  :)

Leanna, отдельное спасибо за комментарии к вопросам и за оперативность в ответах.
 
Вкладываю файл с удалением повторяющихся значений в комбобоксе.
Работать надо не 12 часов, а головой.
 
Я уже сделал вариант здесь
Ashas, зачем темы-дубликаты?

Тему удалил. Нарушение Правил форума: кросс, дубликат темы.
Ashas, пока не сообщите в личке одному из модераторов, какие пункты правил нарушены, решения не получите.
[МОДЕРАТОР. Еще один]
 
Спасибо Всем за помощь.

Претензии приняты и учтены.
Страницы: 1
Читают тему
Наверх
Loading...