Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VBA MS Office

Программирования для MS Office кроме ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Макрос (помощь)
 
 автор: Nastya   (05.02.2007 в 11:23)   личное сообщение
25 Кб.
 
 

Помогите написать макрос, пожалуйста, бьюсь никак не получается. Во вложении описание.

  Ответить  
 
 автор: pashulka   (07.02.2007 в 23:22)   личное сообщение
14 Кб.
 
 

Посмотрите этот пример, там наличествует решение второй части поставленной задачи. Что же касается первой части, то желательно знать - с чем предполагается сравнивать дату.

  Ответить  
 
 автор: Nastya   (08.02.2007 в 14:13)   личное сообщение
35 Кб.
 
 

Первую часть я уже почти домучала сама :). Смысл в том, что по одной сделке может быть много доходов, если доход еще не получен, то он имеет признак N в столбце получен, Y в противном случае. Если доход не получен, то необходимо проверять не устарела ли дата, дата для сверки находится в ячеке G1. Но может быть ситуация когда этот доход уже получен, то есть имеется еще одна строка на такую же сумму с признаком Y, тогда дату проверять не надо.
У меня уже работает :) Только она работает, в том случае, если столбец с признаком получен отсортирован по убыванию. Вот как с этим бороться, я еще не поняла. Красным заливаются ячейки с повторяющимися суммами. А если доход не получен и дата устарела напротив дохода появляется надпись "Дата устарела"
По поводу второй части, ее я еще не делала, но в случае если доход получен Y и отсутсвует строка на такую же сумму с признаком N, значит отсутствует планирование, то есть доход получен, но не был ранее запланирован, тогда в ошибку должна выходить надпись "Где плановая строка?"

  Ответить  
 
 автор: Nastya   (08.02.2007 в 18:17)   личное сообщение
36 Кб.
 
 

Домучала и вторую :). Остался один вопрос, если отсортировать по автофильтру колонку "получен" по убыванию, то правильно работает первая часть когда case "N". То есть вторая часть тоже работает, но она проставляет ошибку напротив каждой ячейки с признаком "Y".
Если же отсортировать по возрастанию, правильно работает второй case "Y", но тогда ошибка "Дата устарела" появляется напротив каждой ячейки с признаком "N".

  Ответить  
 
 автор: Nastya   (08.02.2007 в 18:20)   личное сообщение
 
 

Посмотрите, пожалуйста, вторую версию от 08.02.07 18.17. Запуталася я :)

  Ответить  
 
 автор: Nastya   (08.02.2007 в 19:25)   личное сообщение
38 Кб.
 
 

В общем по-моему я сама справилась :) Сама с собой пообщалась. Вот как я решила проблему, но по-моему это не самый лучший вариант. Может у вас будет лучшее решение?

  Ответить  
 
 автор: pashulka   (08.02.2007 в 19:56)   личное сообщение
 
 

А Вы смотрели предложенный мною вариант решения второй части поставленной задачи ?

  Ответить  
 
 автор: Nastya   (09.02.2007 в 10:19)   личное сообщение
 
 

Просто сложно перестроиться :). Честно говоря, сложно разобраться. А можно с комментариями напротив строк в Вашем коде? Честно говоря, программист это не моя профессия, ну это наверное понятно из моих программ. Просто мне надо быстрее сделать отчет, вот я и делаю так , как умею, если Вам не сложно объяснить, возможно я разберусь в Вашем коде быстрее. Ведь надо же еще вторую часть написать по аналогии с первой :)

  Ответить  
 
 автор: pashulka   (09.02.2007 в 14:53)   личное сообщение
16 Кб.
 
 

Вообще-то, для решения первой части, мне недоставало всего лишь этой информации <дата для сверки находится в ячеке G1> так что теперь Вы можете скачать полный пример. Если же при адаптации этого примера возникнут вопросы, то Вы можете писать мне напрямую.

  Ответить  
 
 автор: Nastya   (09.02.2007 в 16:24)   личное сообщение
 
 

Вы просто ГЕНИЙ :) Открыли для меня такие вещи.................просто слов нет. Спасибо большое!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList