Реферат по предмету "Экономико-математическое моделирование"


VBA Платежка

Министерство образования Республики Беларусь
МОГИЛЕВСКИЙМАШИНОСТРОИТЕЛЬНЫЙ ИНСТИТУТ
Институтповышения квалификации и переподготовки кадров
                   Кафедрасовершенствования профессиональных знаний
КУРСОВОЙ ПРОЕКТ
Подисциплине:”Прикладное програмное обеспечение “
 
ТЕМА ПРОЕКТА:Разработка системы “СозданиеПлатёжных Поручений»
                                     Слушатель гр. ИНФ-2              Гусев А.С.       Руководитель  проекта:  Зав. каф. АСУ,.    С.К.Крутолевич.
 
 
                                            Могилев, 2000 г.

Содержание/> Стр. 1 РАЗРАБОТКА ТРЕБОВАНИЙ К РАБОТЕ 1.1 Анализ предметной области 3 1.2. Постановка  задачи 3-4 2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА 2.1. Разработка  информационной модели  системы 4-5 2.2 Разработка математической модели 5-6 2.3 Определение  требований к техническим средствам 7 3. РАЗРАБОТКА ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ. 3.1 Разработка структуры программы 7 3.2 Определение формы представления входных и выходных данных. 8-9 3.3 Алгоритм решения задачи. 9-10 3.4. Разработка и тестирование программного модуля. 11 Заключение. 11 Список использованных литературных источников. 12 ПЕРЕЧЕНЬ ГРАФИЧЕСКОГО МАТЕРИАЛА НАИМЕНОВА- 1. Алгоритмы основных программных модулей 2. Структура программного обеспечения 3. Входные и выходные формы
                   
                  

1.РАЗРАБОТКА ТРЕБОВАНИЙ К РАБОТЕ
1.1Анализ предметной области.
 
Печатьплатёжных поручений осуществяет практически любая организация.
Поэтому автоматизация этой задачи имеет большое значение .
Автоматизация  этой проблеммы сводитэти работы кнесложным операциям на компьютере.
 
1.2.Постановка задачи   
 Для решения этой задачи необходимосоздать приложение с помощью которого можно было бы хранить данные«Плательщиков». Это будет база данных содержащая:
 
1               Номер«Плательщика»
2               Наименование«Плательщика»
3               НаименованиеБанка «Плательщика»
4               Р/С«Плательщика»
5               УНН«Плательщика»
6               КодБанка «Плательщика»
Кроме  этого  необходимо  создатьбазу данных в которой  хранить данные «Получателей» платежей. Это будет базаданных содержащая:
1               Номер «Получателей»
2               Наименование«Получателей»
3               НаименованиеБанка «Получателей»
4               Р/С«Получателей»
5               УНН«Получателей»
6               КодБанка «Получателей»
7               Видоперации
8               Назначениеплатежа
9               Кодназначения платежа
Кроме  этого  необходимо  создать«Базу данных» в которой  хранить данные Произведённых платежей. Это будет «Базаданных» содержащая:
1               Номер «Платёжного поручения»
2               Датаплатежа
3               КодБанка «Получателей»
4               УНН«Получателей»
5               Наименование«Получателей»
6               НаименованиеБанка «Получателей»
7               Р/С«Получателей»
8               Датаполучения товара, оказания услуг
9               Суммаплатежа
10            Видоперации
11            Кодназначения платежа
12            Параметр“Место печати”
13            Назначенияплатежа
В расчетеучаствуют «Сумма платежа». Для этого необходимо обеспечить ввод числовой информации  по этому пункту.
        Для ускорения последующейработы пользователю необходимо будет залолнять соответствующие поля «Базыданных» «Получателей платежей». И сохранять эти нанные. Это намного ускоритпоследуюющее  создание платёжных поручений. Соответственно необходимопредусмотреть программые функции контролирующие индивидуальность каждой записи.
          Для последующего быстрогоформирования отчётов целесообразно звязать поля  «Базы данных» «Получателей» иполя «Базы данных» «Платежей» с помощью индексов.
  Очень удобным элементом для пользователя  было бы  организация навигации  по  базе  «Платежей»   , а также по базе  «Получателей» и базе «Плательщиков».  Кроме  этого  удаление  и изменениеинформации  позволило  бы устранять из  расчета те  записи  которые  не нужны. 
           Для организации  доступак базам  их корректировки, дополнения, удаления и.т.д.   нужно  организовать несколько  диалогов  с  удобным и быстрым  дляпользователя  доступом  к нужным  ему записям.
           Для  обьединения  всеговыше перечисленного  необходима  система
  которая  позволит  пользователю переходя от одного  элемента меню к другому  выполнять  те или иные програмные  действия. При помощи ее пользователь может выбирать и вызыватьдиалог,осуществлять  навигацию по базе данных (т.е.  перемещаться между записями ), удалятьлибо востанавливать  запись, запускать процедуру созданияотчётов и вывод на печать итогов и.т.д.
 
2.         ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО  ПРОДУКТА
   
2.1. Разработка информационной модели
Информационные системы ориентированы на хранение имодификацию постоянно  существующей информации.  В нашем случае нужно создатьтакую систему которая удовлетворяла следующим свойствам:
1.  Поддерживала учет Плательщиков
2.  Поддерживала для каждогоотдельного Плательщика его личные базы данных (Список Получателе платежей,Список Произведённых платежей )
3.  Поддерживала  процедуру добавленияв базу новых Получателе платежей и   модификацию уже имеющиеся  записи, а также поддерживала удаление из базы данных существующих записей.
4.  Поддерживала переход на сдедующийгод (начало нумерации платёжных поручений с 1)
5.  Возможность формирования отчётовпо заданным временным рараметрам с последующим выводом на печать.
 
/>

                 
/>

                                                         Рисунок  1.
 
2.2 Разработкаматематической  модели  .
В базе данных  в которой содержится произведённые платежи, значение суммыплатежа и есть те данные участвующие в отчёте за  расчитываемый  заданныйвременной период. Т.к. формирование отчёта может быть как по всем получателямтак и по отдельно взятому получателю платежа то математические формулы должнывыглядель следующим образом.
Формула по всем получателям платежа:
 Сумма за выбранный временной период = сумме всех произведённых платежей завыбранный период.
Формула по выбранному получателю платежа:
Сумма за выбранный временной период = сумме всех произведённых платежей завыбранный период.
2.3 Определение требований к техническим средствам.
 Минимальные требования для эффективной работыразработанной ИС являются:
                  Pentium 233 МГц
                  32 Мб памяти
                  Жесткий диск  как минимум  200 Мб
                 Видеокарта  0,5 Мб
                 Монитор  VGA поддерживающий режимы работы 800х600
  Для более комфортной и быстрой работы необходимоиспользовать:
                 Pentium II 366 МГц /Celeronи выше
                 64Мб памяти
                 Жесткий диск 2.5 Гб и выше
                 Видеокарта  1-2-4 МБ 
                 Монитор SVGA поддерживающий режимы работы 800х600 и
               1024х768.
Для печати можно использовать любыематричные, струйные, или лазерные принтеры.
3. РАЗРАБОТКА ПРОГРАММНОГО  ОБЕСПЕЧЕНИЯ
3.1.    Разработка структурыпрограммы
Программа представляет собой файлнадстройки Excel97 имеющий
встроенный код Visual Basic forApplication. Так же имеется четырифайла Excel97 представляющие собой:
1.  Файл базы данныхПлательщиков. состоит из двух листов. Где один лист содержит информацию огодах в течении которых использовалать программа. А другой информацию оПолучателях платежей.
2.  Файл базы данныхПолучателей платежей. Первоначально содержит один лист. Добавление и удатениелистов в книге происходит динамически в зависимости от кол-ва Плательщиков.Другими словами на каждого Плательщика отводится один лист являющейся базойданных Получателей данного Плательщика.
3.  Файл базы данныхПлатежных Поручений. Первоначально содержит два листа. Добавление и удатениелистов в книге происходит динамически в зависимости от кол-ва Плательщиков.Другими словами на каждого Плательщика отводится один лист являющейся базойданных Платежных Поручений данного Плательщика. Другой лист является чистым бланкомотчёта.
4.  Файл платежного поручения.Собственно этот файл содержит один лист являющейся бланком платёжногопоручения.
Встроенный код VBA содержит процедуры ифункции поддерживающие элементы управления, а также процедуры вормированияотчёта, процедуры добавления и удатения листов в книгах, добавтения и уданленияфайловучаствующич в отчётах, процедуры контроля вводимой пользователеминформации, и т.д.
Данная программма является полностьюоткрытой для дальнейшего изменения и модификации. Информация  набранная в этой системеможет быть использована в других приложениях  использующих средства
Microsoft Office.
3.2.Определение  формы представлениявходных и выходных данных.
Главная (первая форма) состоит:
1.  Кнопка перехода в формуОТЧЕТЫ
2.  Кнопка перехода в формуПЛАТЕЛЬЩИКИ
3.  Поле ИНТЕРАКТИВНАЯСПРАВКА
4.  Выпадающего спискаВЫБОР ПОЛУЧАТЕЛЯ
5.  Поле НАИМЕНОВАНИЕПОЛУЧАТЕЛЯ
6.  Поле ДАТА
7.  Поле НАИМЕНОВАНИЕ БАНКАПОЛУЧАТЕЛЯ
8.  Группы кнопок дляработы с датой СЕГОДНЯ, ПЛЮС ДЕНЬ, МИНУС ДЕНЬ
9.  Поле Р/С ПОЛУЧАТЕЛЯ
10.      Поле ВИД ОПЕРАЦИИ
11.      Поле КОД БАНКАПОЛУЧАТЕЛЯ
12.      Поле ДАТА ПОЛУЧЕНИЯТОВАРА, ОКАЗАНИЯ УСЛУГ
13.      Поле КОД НАЗНАЧЕНИЯПЛАТЕЖА
14.      Поле УНН ПОЛУЧАТЕЛЯ
15.      Поле ВВЕДИТЕ СУММУ
16.      Группыкнопок-переключателей М/П-место печати, Б/П-без печати, ПУСТО-нет никакихнадписей в пл. поручении на месте для печати.
17.      Поле ВВЕДИТЕ НАЗНАЧЕНИЕПЛАТЕЖА
18.      Радиокнопка дляперехода формы в режим просмотра базы данных старых пл. поручений  ПОСМОТРЕТЬСТАРЫЕ ПЛАТЁЖКИ
19.      Кнопка СОХРАНИТЬ НОВОЕПОРУЧЕНИЕ
20.      Кнопка ДОБАВИТЬПОЛУЧАТЕЛЯ
21.      Кнопка ВНЕСТИ ИЗМЕНЕНИЯВ ДАННЫЕ О ПОЛУЧАТЕЛЕ
22.      Кнопка УДАЛЕНИЕПОЛУЧАТЕЛЕ
23.      Кнопка ВЫХОД
24.      Скрытой кнопки ПЕЧАТЬНОВОГО ПЛАТЁЖНОЕ ПОРУЧЕНИЯ
25.      Скрытой кнопкиПРЕДОСМОТР
26.      /> />
Скрытой выпадающий список для выборакол-ва копий для печати
Рис 3.
При помощи радиокнопки вид информационнойчасти может менятся.
Для внесения новых данных о получателяхплатежей и формирования новых пл. поручений она имеет вид приведенный выше, для навигации и редактирования старых пл. поручений она принимает следующий вид.
1.  Кнопка перехода в формуОТЧЕТЫ
2.  Кнопка перехода в формуПЛАТЕЛЬЩИКИ
3.  Поле НОМЕР ПЛ.ПОРУЧЕНИЯ
4.  Поле ИНТЕРАКТИВНАЯСПРАВКА
5.  Поле НАИМЕНОВАНИЕПОЛУЧАТЕЛЯ
6.  Поле ДАТА
7.  Поле НАИМЕНОВАНИЕ БАНКАПОЛУЧАТЕЛЯ
8.  Группы кнопок дляработы с датой СЕГОДНЯ, ПЛЮС ДЕНЬ, МИНУС ДЕНЬ
9.  Поле Р/С ПОЛУЧАТЕЛЯ
10.      Поле ВИД ОПЕРАЦИИ
11.      Поле КОД БАНКАПОЛУЧАТЕЛЯ
12.      Поле ДАТА ПОЛУЧЕНИЯТОВАРА, ОКАЗАНИЯ УСЛУГ
13.      Поле КОД НАЗНАЧЕНИЯПЛАТЕЖА
14.      Поле УНН ПОЛУЧАТЕЛЯ
15.      Поле ВВЕДИТЕ СУММУ
Рис3.
16.      Группыкнопок-переключателей М/П-место печати, Б/П-без печати, ПУСТО-нет никакихнадписей в пл. поручении на месте для печати.
17.      Поле ВВЕДИТЕ НАЗНАЧЕНИЕПЛАТЕЖА
18.      Радиокнопка дляперехода формы в первоначальный режим ВЕРНУТЬСЯК СОЗДАНИЮ ПЛАТЁЖКИ
19.      Кнопка ВНЕСТИ ИЗМЕНЕНИЯВ СТАРУЮ ПЛАТЁЖКУ
20.      Кнопка для просмотрапрошлогодних пл. поручений ЗА ПРОШЛЫЙ ГОД
21.      Кнопка ПЕЧАТЬ СТАРОГОПЛАТЁЖНОГО ПОРУЧЕНИЯ
22.      Кнопка для перехода постарым пл. поручениям
23.      Кнопка для перехода вконец списка пл. поручений К КОНЦУ СПИСКА ПЛАТЁЖЕК
24.      Поле для ввода номерапл. поручения к которому следует сделать переход
25.      Кнопка для введённогономера пл. поручения к которому следует сделать переход ПЕРЕЙТИ ПО НОМЕРУ
26.      Кнопка ВЫХОД
27.      Кнопка ПРЕДОСМОТР
28.      Выпадающий список длявыбора кол-ва копий для печати
/>
Рис4.
При помощи кнопки  Отчёты происходитпереход в форму отчётов. Форма отчётов имеет следующий вид:
1.  Кнопка перехода в главную формуНАЗАД К ПЛАТЁЖКАМ
2.  Двенадцать флажков накаждый месяцгода соответственно
3.  Кнопка перехода в формуПЛАТЕЛЬЩИКИ
4.  Выпадающий списокСПИСОК ПОЛУЧАТЕЛЕЙ
5.  Выпадающий списокСПИСОК ПЛАТЕЛЬЩИКОВ
6.  Кнопка ЗА I-Й КВАРТАЛ для быстрого выделения флажков I-гоквартала
7.  Кнопка ЗА II -Й КВАРТАЛЛ для быстрого выделения флажков II-гоквартала
8.  Кнопка ЗА III-Й КВАРТАЛдля быстрого выделения флажков III-гоквартала
9.  Кнопка ЗА IV-Й КВАРТАЛ для быстрого выделения флажков IV-го квартала
10.      Кнопка ЗА ГОД для быстрого выделения всех флажков года
11.      Поле года отчёта
12.      Кнопка ПЛЮС ГОД
13.      Кнопка МИНУС ГОД
14.      Кнопка сброс для снятияактивизации со всех флажков месяцев
15.      Скрытая кнопка удаленияфайлов отчёта. Кнопка появляется  если имеется хоть бы один файл со старыми отчётами.
16.      Справочное поле выдаётинформацию о выбранном для отчёта получателе и сформированном отчёте
17.      Справочное поле выдаётинформацию о выбранном для отчёта плательщике
18.      Поле РЕЗУЛЬТАТ. Сдесьвыводятся итоговые данные.
19.      Кнопка СФОРМИРОВАТЬОТЧЁТ
20.      Кнопка ПРОСМОТР ОТЧЁТА
21.      Кнопка ПЕЧАТЬ ОТЧЁТА
22.      Кнопка СФОРМИРОВАТЬОТЧЁТ ПО ВСЕМ ПОЛУЧАТЕЛЯМ
23.      Выпадающий список длявыбора копий при печать отчёта
24.      /> />
Поле ИНТЕРАКТИВНОЙ СПРАВКИ
25.      Кнопка ВЫХОД
Рис5.
При переходе в главную форму с помощьюкнопки НАЗАД К ПЛЯТЁЖКАМ. Пользователь может перейти к форме плательщики. Этаформа содержит следующие элементы:
1.  Кнопка перехода в главную формуНАЗАД К ПЛАТЁЖКАМ
2.  Выпадающий список длявыбора ПЛАТЕЛЬЩИКА
3.  Поле НАИМЕНОВАНИЕПЛАТЕЛЬЩИКА
4.  Поле НАИМЕНОВАНИЕ БАНКАПЛАТЕЛЬЩИКА
5.  Поле Р/С БАНКАПЛАТЕЛЬЩИКА
6.  Поле УНН ПЛАТЕЛЬЩИКА
7.  Поле КОД БАНКАПЛАТЕЛЬЩИКА
8.  Кнопка для активизациивыбранного плательщика СДЕЛАТЬ ЭТОГО ПЛАТЕЛЬЩИКА ТЕКУЩИМ В П/П
9.  Кнопка ДОБАВИТЬПЛАТЕЛЬЩИКА
10.      Кнопка УДАЛИТЬПЛАТЕЛЬЩИКА
11.      Кнопка ВНЕСТИ ИЗМЕНЕНИЯВ ДАННЫЕ О ПЛАТЕЛЬЩИКЕ
/>
Рис 6.
 
5.3   Алгоритм решения задачи.
         Расмотрим алгоритм процедуры расчета суммыпрогизведённых платежей по выбранному для отчёта получателю.
/>
/>

                                     
/>

да  
нет  
нет  
нет  
да  
да                                                      
                                                                 /> /> /> /> /> /> /> />

                                                        
SS = Worksheets(PP).Range(«L» & Список.ListIndex + 1)"                                                                                                       /> /> /> /> /> /> /> /> />

                           /> /> /> /> /> /> /> /> />

/>                                                                                 /> /> /> /> /> /> /> /> /> />
/>

3.4 Разработкаи тестирование программного модуля.
 Возмём  в качестве  тестового примера  несколькополучателей платежей .  Заполним некоторое кол-во плю поручений. На пример:Наименование Получателя Дата Кол-во платежа Иванов 01/02/00 500 Иванов 02/02/00 600 Иванов 03/03/00 700 Иванов 04/04/00 800 Иванов 05/05/00 900 Иванов 06/06/00 1000 Иванов 07/07/00 1100 Иванов 08/08/00 1200 Сидоров 01/02/00 100 Сидоров 02/02/00 10 Сидоров 03/03/00 15 Сидоров 04/04/00 16 Сидоров 05/05/00 17 Сидоров 08/08/00 18 Сидоров 08/09/00 19 Иванов 01/02/00 1000 Итого 7995
Результаты полученные ьвне программы совершенноидентичны результатам полученным программым путём.
Так же программый продукт подвергся тестированию насобственном производстве. Ошибок выявлено не было.
Из  этого можно  сделать вывод чтосозданное программное обеспечение  работает правильно и вполне  готово к эксплуатации.
                                             Заключение.
Представленный программный продукт создан в среде Excel  -97 .
Преимуществомданного продукта является  его простота, достаточный комфорт при эксплуатации,что дает возможность  пользователю эффективно работать с этой программой. Кромеэтого обеспечивается  неплохая надежность работы программного  средства, и хорошая  информационнаянавигация.
Изменяемостьпрограммы  можно осуществить только модернизируя ее, что не предоставляетдостаточной  гибкости.
 Литература
1.   “MicrosoftOFFICE97разработка приложений”  К.Соломон  издательство  “БХВ “г.Санкт-Петербург 1998 год.                                                 
2. КенГетц. Майк Джилберт ” Программирование в Microsoft  Office “   — издательство “ Печатный двор“  Государственного комитета РФ по печатиг.Санкт-Петербург1999 год.
3.М.МакКелви и др. “ Visual Basic 5 “ издательство “ BHV-Санкт-Петербург“ 1998 год.
         4.  Р.Персон. “ExcelдляWindows95 “ издательство “ BHV-Санкт-Петербург“ 1998 год.
     5. Р.Винтер. “MicrosoftOffice дляWindows95 “ издательство “ BHV-Санкт-Петербург“  1998 год.
6. Фигурнов В.Э.” IBM PC дляпользователя.” — М:Финансы и статистика, 1991.
7.Ч.Петзолд “Программированиедля  Windows95  ” издательство “ BHV-Санкт-Петербург“ 1998 год.
8. Ф. Новиков, А.Яценко.“Microsoft Office в целом” издательство “BHV-Санкт-Петербург“1998 год.
Исходный текст основного программного модуля.
Dim №ПЛ AsString
Dim Платящий AsString
Dim BOX
Dim БОКС
Dim МП1 AsString
Dim Год
Private SubComboBox1_Change()
 Windows(«Клиенты» & Year(Date)).Activate
  IfComboBox1.ListIndex = -1 Then
  Exit Sub
  End If
  a =ComboBox1.ListIndex
 Счётчик2.Visible = False
 Создать.Visible = False
 Предосмотр.Visible = False
 СохранитьНов.Visible = True
 IfLen(Worksheets(№ПЛ).Range(«A1»)) = 0 Then
 ComboBox1.Visible = False
 Windows(«Клиенты» & Year(Date)).Activate
  Счёт =Worksheets(№ПЛ).Range(«C1»)
  Банк =Worksheets(№ПЛ).Range(«B1»)
  Клиент =Worksheets(№ПЛ).Range(«A1»)
  КодБанка =Worksheets(№ПЛ).Range(«D1»)
  УНН =Worksheets(№ПЛ).Range(«E1»)
  ВидОперации =Worksheets(№ПЛ).Range(«f1»)
  НазначПлатежа1= Worksheets(№ПЛ).Range(«g1»)
  НомНазПл =Worksheets(№ПЛ).Range(«H1»)
 ElseIf a
 ComboBox1.ListIndex = a + 1
 Windows(«Клиенты» & Year(Date)).Activate
  Счёт =(Worksheets(№ПЛ).Range(«C» & (ComboBox1.ListIndex + 1)))
  Банк =(Worksheets(№ПЛ).Range(«B» & (ComboBox1.ListIndex + 1)))
  Клиент =(Worksheets(№ПЛ).Range(«A» & (ComboBox1.ListIndex + 1)))
  КодБанка =(Worksheets(№ПЛ).Range(«D» & (ComboBox1.ListIndex + 1)))
  УНН =(Worksheets(№ПЛ).Range(«E» & (ComboBox1.ListIndex + 1)))
  ВидОперации =Worksheets(№ПЛ).Range(«f» & (ComboBox1.ListIndex + 1))
  НазначПлатежа1= Worksheets(№ПЛ).Range(«g» & (ComboBox1.ListIndex + 1))
  НомНазПл =Worksheets(№ПЛ).Range(«H» & (ComboBox1.ListIndex + 1))
 Else
 Windows(«Клиенты» & Year(Date)).Activate
  Счёт = (Worksheets(№ПЛ).Range(«C»& (ComboBox1.ListIndex + 1)))
  Банк =(Worksheets(№ПЛ).Range(«B» & (ComboBox1.ListIndex + 1)))
  Клиент =(Worksheets(№ПЛ).Range(«A» & (ComboBox1.ListIndex + 1)))
  КодБанка =(Worksheets(№ПЛ).Range(«D» & (ComboBox1.ListIndex + 1)))
  УНН =(Worksheets(№ПЛ).Range(«E» & (ComboBox1.ListIndex + 1)))
  ВидОперации =Worksheets(№ПЛ).Range(«f» & (ComboBox1.ListIndex + 1))
  НазначПлатежа1= Worksheets(№ПЛ).Range(«g» & (ComboBox1.ListIndex + 1))
  НомНазПл =Worksheets(№ПЛ).Range(«H» & (ComboBox1.ListIndex + 1))
 End If
End Sub
Private SubВыход_Click()
 Windows(«Платёжки»& Year(Date)).Activate
 ActiveWorkbook.Save
 ActiveWindow.Close
 Windows(«Клиенты»& Year(Date)).Activate
 ActiveWorkbook.Save
 ActiveWindow.Close
 Windows(«Платёжка.xls»).Activate
 ActiveWorkbook.Save
 ActiveWindow.Close
 Application.Quit
'ActiveWorkbook.RunAutoMacrosWhich:=xlAutoClose
End Sub
Private SubUserForm_Activate()
 Windows(«Платёжка.xls»).Activate
Платящий =«Текущий Плательщик: » & Worksheets(«Лист1»).Range(«E7»)& _
" УНН:" & Worksheets(«Лист1»).Range(«C7») & _
" P/c:" & Worksheets(«Лист1»).Range(«Q8») & _
" Банк:" & Worksheets(«Лист1»).Range(«D8») & _
" Код Банка: " & Worksheets(«Лист1»).Range(«P9»)
№ПЛ =Worksheets(«Лист1»).Range(«A1»)
 Windows(«Клиенты»& Year(Date)).Activate
 ComboBox1.Clear
 МП = True
 X = 1
 Год =Year(Date)
 WhileLen(Worksheets(№ПЛ).Range(«A» & X)) 0
   ComboBox1.AddItem (Worksheets(№ПЛ).Range(«A» & X))
    X = X + 1
 Wend
End Sub
Private SubЗаПрошлыйГод_Click()
If Dir(«C:\ProgramFiles\Платёжка\Платёжки» & (Year(Date) — 1) & ".xls") =_
 «Платёжки»& (Year(Date) — 1) & ".xls" Then
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Платёжки» & (Year(Date) — 1)
 Windows(«Платёжки»& (Year(Date) — 1)).Activate
 Worksheets(№ПЛ).Select
 Год =Year(Date) — 1
 Else
  БОКС =MsgBox(«За прошлый год файл отчёта не найден»,, BOX)
  Exit Sub
  End If
  Вконец = True
 
End Sub
Private SubПлательщики_Click()
  UserForm1.Hide
  UserForm3.Show
End Sub
Private SubОтчёты_Click()
  UserForm1.Hide
  UserForm2.Show
End Sub
Private SubМинус_Click()   ' отнимает 1 день от даты
 If IsDate(Дата)= True Then
  Дата =CDate(Дата) — 1
  Else
 End If
End Sub
Private SubПлюс_Click()     ' прибавляет один день к дате
 If IsDate(Дата)= True Then
   Дата =CDate(Дата) + 1
   Else
 End If
End Sub
Private SubПредосмотр_Click()   ' активизирует окно просмотра Excel
 Windows(«Платёжка.xls»).Activate
 Application.Visible= True
 UserForm1.Hide
 ActiveWindow.SelectedSheets.PrintPreview
 Application.Visible= False
 UserForm1.Show
End Sub
Private SubUserForm_Initialize()
 IfDir(«C:\Program Files\Платёжка\Клиенты» & Year(Date) &".xls") _
 «Клиенты»& Year(Date) & ".xls" Then
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Клиенты» & (Year(Date) — 1)
 Windows(«Клиенты»& (Year(Date) — 1)).Activate
 ActiveWorkbook.SaveAsFileName:=«C:\Program Files\Платёжка\Клиенты» & Year(Date)
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Платёжки» & (Year(Date) — 1)
 Windows(«Платёжки»& (Year(Date) — 1)).Activate
 ActiveWorkbook.SaveAsFileName:=«C:\Program Files\Платёжка\Платёжки» & Year(Date)
 
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Плательщики.xls»
 Windows(«Плательщики.xls»).Activate
 X = 1
 Do WhileLen(Worksheets(«Лист1»).Range(«A» & X)) 0
 X = X + 1
 Loop
 X = X — 1
 
 Do While X 0
 Windows(«Клиенты»& Year(Date)).Activate
 Worksheets(CStr(X)).Select
 Worksheets(CStr(X)).Range(«L1:L65535»).Select
 Selection.ClearContents
 
 Windows(«Платёжки»& Year(Date)).Activate
 Worksheets(CStr(X)).Select
 Worksheets(CStr(X)).Columns(«A:AG»).Select
 Selection.ClearContents
 X = X — 1
 Loop
 Windows(«Клиенты»& Year(Date)).Activate
 ActiveWorkbook.Save
 Windows(«Платёжки»& Year(Date)).Activate
 ActiveWorkbook.Save
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Платёжка.xls»
 Windows(«Плательщики.xls»).Activate
 Worksheets(«Года»).Select
 X = 1
 WhileLen(Worksheets(«Года»).Range(«A» & X)) 0
 X = X + 1
 Wend
 'Worksheets(«Года»).Range(«A»& X) = CStr((Year(Date) — 1))
 Worksheets(«Года»).Range(«A»& X) = CStr(Year(Date))
 ActiveWorkbook.Save
 Else
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Клиенты» & Year(Date)
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Платёжки» & Year(Date)
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Платёжка.xls»
 Workbooks.OpenFileName:=«C:\Program Files\Платёжка\Плательщики.xls»
 End If
 
 
 Год =Year(Date)
 Счётчик2.List =Array(1, 2, 3)
 Счётчик2 = 1
 Дата = Date
 МП = True
 ComboBox1.Visible= True
 НомерПл.Visible= False
 Label1.Visible= True
 Создать.Visible= False
 Label14.Visible= False
 Счётчик.Visible= False
 КСтарПл.Visible= False
 Предосмотр.Visible= False
 Счётчик2.Visible= False
 ИзмененияСТ.Visible= False
 Вконец.Visible= False
 номерСТПЛ.Visible= False
 ПоНомеру.Visible= False
 ЗаПрошлыйГод.Visible= False
 Сегодня.Caption= «Сегодня: » & Date
 BOX =«Платёжка»
 Windows(«Платёжка.xls»).Activate
 №ПЛ =Worksheets(«Лист1»).Range(«a1»)
 Windows(«Клиенты»& Year(Date)).Activate
 X = 1
 WhileLen(Worksheets(№ПЛ).Range(«A» & X)) 0
   ComboBox1.AddItem (Worksheets(№ПЛ).Range(«A» & X))
    X = X + 1
 Wend
End Sub
Private SubUserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 Windows(«Платёжки» & Year(Date)).Activate
 ActiveWorkbook.Save
  ActiveWindow.Close
 Windows(«Клиенты» & Year(Date)).Activate
 ActiveWorkbook.Save
 ActiveWindow.Close
 Windows(«Платёжка.xls»).Activate
 ActiveWorkbook.Save
 ActiveWindow.Close
 Application.Quit
'ActiveWorkbook.RunAutoMacrosWhich:=xlAutoClose
End Sub
Private SubИзмениния_Click()
Windows(«Клиенты»& Year(Date)).Activate
 If Проверка =False Then ' Проверка на правильность                      ' функция находитсяв конце программы
   ExitSub                 ' введённой информац
  Else                     ' функция находится в конце программы
 End If
   X = 1
   Do While X
    If Клиент =Worksheets(№ПЛ).Range(«A» & X) _
     And Банк =Worksheets(№ПЛ).Range(«b» & X) _
     And Счёт =Worksheets(№ПЛ).Range(«c» & X) _
     AndКодБанка = Worksheets(№ПЛ).Range(«d» & X) _
     And УНН =Worksheets(№ПЛ).Range(«e» & X) _
     AndВидОперации = Worksheets(№ПЛ).Range(«f» & X) _
     AndНомНазПл = Worksheets(№ПЛ).Range(«H» & X) _
     AndНазначПлатежа1 = Worksheets(№ПЛ).Range(«g» & ComboBox1.ListIndex+ 1) _
     Then
     БОКС =MsgBox(«Извените но: » & Клиент & " уже есть в спискеПолучателей." _
     &Chr(10) & «Попробуйте выбрать Получателя из списка.»,, BOX)
     Exit Sub
     Else
     X = X + 1
     End If
   Loop
  
   Worksheets(№ПЛ).Range(«A»& (ComboBox1.ListIndex + 1)) = Клиент
  Worksheets(№ПЛ).Range(«b» & (ComboBox1.ListIndex + 1)) = Банк
  Worksheets(№ПЛ).Range(«c» & (ComboBox1.ListIndex + 1)) = Счёт
  Worksheets(№ПЛ).Range(«d» & (ComboBox1.ListIndex + 1)) = КодБанка
  Worksheets(№ПЛ).Range(«e» & (ComboBox1.ListIndex + 1)) = УНН
  Worksheets(№ПЛ).Range(«f» & (ComboBox1.ListIndex + 1)) =ВидОперации
  Worksheets(№ПЛ).Range(«g» & (ComboBox1.ListIndex + 1)) =НазначПлатежа1
  Worksheets(№ПЛ).Range(«H» & (ComboBox1.ListIndex + 1)) = НомНазПл
  ActiveWorkbook.Save
   БОКС =MsgBox(«Изменения в данные о Клиенте: » & Клиент & "успешно внесёны в список клиентов",, BOX)
  Клиент.SetFocus
End Sub
Private SubДобавитьПол_Click()
  Windows(«Клиенты» & Year(Date)).Activate
  If Проверка =False Then ' Проверка на правильность                      ' функция находитсяв конце программы
   ExitSub                 ' введённой информац
  Else                     ' функция находится в конце программы
  End If
   X = 1
    Do While X
    If Клиент =Worksheets(№ПЛ).Range(«A» & X) _
     And Банк =Worksheets(№ПЛ).Range(«b» & X) _
     And Счёт =Worksheets(№ПЛ).Range(«c» & X) _
     AndКодБанка = Worksheets(№ПЛ).Range(«d» & X) _
     And УНН =Worksheets(№ПЛ).Range(«e» & X) _
     AndВидОперации = Worksheets(№ПЛ).Range(«f» & X) _
     AndНомНазПл = Worksheets(№ПЛ).Range(«H» & X) _
     Then
     БОКС =MsgBox(«Извените но: » & Клиент & " уже есть в спискеПолучателей." _
     &Chr(10) & «Попробуйте выбрать Получателя из списка.»,, BOX)
     Exit Sub
     Else
     X = X + 1
     End If
     Loop
  
   X = 1
   WhileLen(Worksheets(№ПЛ).Range(«A» & X)) 0
   X = X + 1
   Wend
  Worksheets(№ПЛ).Range(«A» & X) = Клиент
  Worksheets(№ПЛ).Range(«b» & X) = Банк
  Worksheets(№ПЛ).Range(«c» & X) = Счёт
  Worksheets(№ПЛ).Range(«d» & X) = КодБанка
  Worksheets(№ПЛ).Range(«e» & X) = УНН
  Worksheets(№ПЛ).Range(«f» & X) = ВидОперации
  Worksheets(№ПЛ).Range(«g» & X) = НазначПлатежа1
   Worksheets(№ПЛ).Range(«H»& X) = НомНазПл
 ComboBox1.Visible = True
 ComboBox1.AddItem (Worksheets(№ПЛ).Range(«A» &(ComboBox1.ListCount + 1)))
 ComboBox1.ListIndex = X — 1
 ActiveWorkbook.Save
  БОКС =MsgBox(«Новый Клиент: » & Клиент & " внесён в списокклиентов",, BOX)
 Клиент.SetFocus
   
End Sub
Private SubКСтарПл_Click()
  Windows(«Платёжка.xls»).Activate
 If Len(НомерПл)= 0 Then
   БОКС =MsgBox(«Вы не выбрали платёжку...»,, BOX)
   Exit Sub
 Else
 End If
  
 If ПроверкаПЛ =False Then ' Проверка на правильность
    ExitSub                 ' введённой информации
   Else                     ' функция находится в конце программы
 End If
  
   Вплатёжку'функция сохраняющая данные в платёжке
  ActiveWorkbook.Save
  Windows(«Платёжки» & Year(Date)).Activate
  Worksheets(№ПЛ).Range(«A» & НомерПл) = НомерПл
  Worksheets(№ПЛ).Range(«c» & НомерПл) = Банк
  Worksheets(№ПЛ).Range(«d» & НомерПл) = Счёт
  Worksheets(№ПЛ).Range(«b» & НомерПл) = Клиент
  Worksheets(№ПЛ).Range(«e» & НомерПл) = КодБанка
  Worksheets(№ПЛ).Range(«f» & НомерПл) = УНН
  Worksheets(№ПЛ).Range(«g» & НомерПл) = Деньги
  Worksheets(№ПЛ).Range(«h» & НомерПл) = Дата
  Worksheets(№ПЛ).Range(«I» & НомерПл) = ДатаУслуг
  Worksheets(№ПЛ).Range(«J» & НомерПл) = ВидОперации
   Worksheets(№ПЛ).Range(«K»& НомерПл) = НазначПлатежа1
  Worksheets(№ПЛ).Range(«L» & НомерПл) = НомНазПл
  Worksheets(№ПЛ).Range(«M» & НомерПл) = МП1
  Windows(«Платёжка.xls»).Activate
   Впечать'функция печати
End Sub
Private SubИзмененияСТ_Click()
 If Year(Дата) Год Then
 БОКС =MsgBox(«В дате должен  стоять » & Год & " год",,BOX)
 Exit Sub
 End If
  Windows(«Платёжка.xls»).Activate
 If Len(НомерПл)= 0 Then
   БОКС =MsgBox(«Вы не выбрали платёжку...»,, BOX)
   Exit Sub
   Else
 End If
  
 If ПроверкаПЛ =False Then ' Проверка на правильность
    ExitSub                 ' введённой информации
   Else                     ' функция находится в конце программы
 End If
  
   Вплатёжку'функция сохраняющая данные в платёжке
  ActiveWorkbook.Save
   Windows(«Платёжки»& Год).Activate
  Worksheets(№ПЛ).Range(«A» & НомерПл) = НомерПл
  Worksheets(№ПЛ).Range(«c» & НомерПл) = Банк
  Worksheets(№ПЛ).Range(«d» & НомерПл) = Счёт
  Worksheets(№ПЛ).Range(«b» & НомерПл) = Клиент
  Worksheets(№ПЛ).Range(«e» & НомерПл) = КодБанка
  Worksheets(№ПЛ).Range(«f» & НомерПл) = УНН
  Worksheets(№ПЛ).Range(«g» & НомерПл) = CDbl(Деньги)
  Worksheets(№ПЛ).Range(«h» & НомерПл) = Дата
  Worksheets(№ПЛ).Range(«I» & НомерПл) = ДатаУслуг
  Worksheets(№ПЛ).Range(«J» & НомерПл) = ВидОперации
  Worksheets(№ПЛ).Range(«K» & НомерПл) = НазначПлатежа1
  Worksheets(№ПЛ).Range(«L» & НомерПл) = НомНазПл
  Worksheets(№ПЛ).Range(«M» & НомерПл) = МП1
  ActiveWorkbook.Save
   БОКС =MsgBox(«Изменения в платёжку №: » & НомерПл & " успешновнесёны ",, BOX)
 Клиент.SetFocus
End Sub
Private SubСегодня_Click()
  Дата = Date
End Sub
Private SubСтарыеПл_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
If СтарыеПл =False Then
Label16.Caption= " Нажав на эту кнопку Вы можете посмотреть все Ваши старомплатёжки" _
 & " атак-же что-то подправить и сохранить эти изменения"
 Else
Label16.Caption= " Нажав на эту кнопку Вы перейдёте к форме формирования платёжек"
 End If
End Sub
Private SubОтчёты_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Кнопка 'Отчёты' для перехода в форму ОТЧЁТЫ. Там Вы сможете узнать кудаже делись Ваши деньги !!!»
End Sub
Private SubВыход_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Кнопка 'Выход' для выхода из программы. Если решили выйти смело жмите,программа сохранит результаты вашей работы.»
End Sub
Private SubУбитьКлиента_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal XAs Single, ByVal Y As Single)
 Label16.Caption= " Нажав на эту кнопку Вы можете удалить выбранного Получателя из спискаПолучателей "
End Sub
Private SubПоНомеру_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= " Введите номер платёжки в расположенное рядом с этой кнопкой небольшоеполе. Затем нажмите на эту кнопку и вы перейдёте к платёжке с введённым ваминомером. "
End Sub
Private SubВконец_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= " Нажав на эту кнопку Вы осуществите переход к концу списка платёжек"
End Sub
Private SubИзмениния_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= " Нажав на эту кнопку Вы внесёте  изменения в список Получателей "
End Sub
Private SubДобавитьПол_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal XAs Single, ByVal Y As Single)
 Label16.Caption= " Нажав на эту кнопку Вы внесёте в список Получателей Ваших денег данныео новом Получателе "
End Sub
Private SubИзмененияСТ_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal XAs Single, ByVal Y As Single)
 Label16.Caption= " Нажав на эту кнопку Вы можете сохранить изменения в старом платёжномпоручении"
End Sub
Private SubКСтарПл_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= " Нажав на эту кнопку Вы можете распечатать Ваше старое платёжноепоручения" _
 & " Не забудьте выбрать кол-во копий в выпадающем списке рядом с кнопкой"
End Sub
Private SubСохранитьНов_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal XAs Single, ByVal Y As Single)
 Label16.Caption= «Эта кнопка предназначена для сохранения созданного платёжногопоручения»
End Sub
Private SubСоздать_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Нажав на эту кнопку Вы можете распечатать Ваше платёжноепоручения» _
 & " Не забудьте выбрать кол-во копий в выпадающем списке рядом с кнопкой"
End Sub
Private SubUserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= Платящий
End Sub
Private SubПлательщики_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal XAs Single, ByVal Y As Single)
 Label16.Caption= «Нажав эту кнопка Вы можете поменять текущего Плательщика или внестиизменения в существующие данные о Плательщике»
End Sub
Private SubСегодня_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Кнопка для вставки текущей даты в формируемую платёжку»
End Sub
Private SubКодБанка_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят код банка Получателя. Допускаютсятолько цифровые значения.»
End Sub
Private SubComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Что бы вставить данные Получателя платежа востользуйтесь этимвыпадающем списком. Если данные отсутствуют, значит придётся добавить новогоПолучателя.»
End Sub
Private SubLabel14_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Номер текущей платёжки»
End Sub
Private SubДата_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят дату формируемой платёжки.Допускаются такие форматы дат. Пример: 01,01,200 или 01/01/2000 или01.01/00»
End Sub
Private SubУНН_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «НЕ обязательное поле. В это поле вносят УНН Получателя. Допускаютсятолько цифровые значения.»
End Sub
Private SubНазначПлатежа1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByValX As Single, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят сведения за что Вы собственноплатите.» _
 &«СОВЕТ если Вы знаете, что будете здесь писать почти всегда одно и тоже» _
 & «тонажмите кнопку Внести изменения в данные о Получателе.»
End Sub
Private SubКлиент_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят Наименование Получателя. Например: „“ООО Приятные Мелочи»""
End Sub
Private SubБанк_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят Наименование Банка Получателя. Например: „“ОАО Белбизнесбанк г. Могилёв»""
End Sub
Private SubСчёт_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят № расчётного счёта  Получателя.Допускаются только цифровые значения.»
End Sub
Private SubДатаУслуг_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «НЕ обязательное поле. В это поле вносят дату получения товара илиоказания услуг. Пример: Предоплата или 28 марта 2000г.»
End Sub
Private SubВидОперации_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal XAs Single, ByVal Y As Single)
 Label16.Caption= «НЕ обязательное поле. В это поле вносят число отражающее вид операции.Допускаются только цифровые значения.»
End Sub
Private SubНомНазПл_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «НЕ обязательное поле. В это поле вносят число отражающее код назначенияплатежа. Допускаются только цифровые значения.»
End Sub
Private SubДеньги_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Обязательное поле. В это поле вносят сумму платежа. Допускаются толькоцифровые значения.»
End Sub
Private SubМинус_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Отнимает один день от текущей даты.»
End Sub
Private SubПлюс_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X AsSingle, ByVal Y As Single)
 Label16.Caption= «Добавляет один день к текущей дате.»
End Sub
Private SubСохранитьНов_Click()
  If Year(Дата) Year(Date) Then
  БОКС =MsgBox(«Извините но в строке 'Дата' ошибка. Укажите текущий Год»,,BOX)
  Дата.SetFocus
  Exit Sub
  End If
 Windows(«Платёжка.xls»).Activate
  If ПроверкаПЛ= False Then ' Проверка на правильность
    Exit Sub                 'введённой информации
   Else                     ' функция находится в конце программы
  End If
  IfComboBox1.ListIndex = -1 Then
  БОКС =MsgBox(«Извините но Вы забыли внести Получателя: » & Клиент& " в список Получателей ",, BOX)
  Exit Sub
  Else
  End If
 
  Windows(«Клиенты» & Year(Date)).Activate
   If Клиент ComboBox1 _
   Or Счёт Worksheets(№ПЛ).Range(«c» & ComboBox1.ListIndex + 1) _
   Or Банк Worksheets(№ПЛ).Range(«b» & ComboBox1.ListIndex + 1) _
   Or КодБанка Worksheets(№ПЛ).Range(«d» & ComboBox1.ListIndex + 1) _
   Or УНН Worksheets(№ПЛ).Range(«e» & ComboBox1.ListIndex + 1) _
   OrВидОперации Worksheets(№ПЛ).Range(«f» &ComboBox1.ListIndex + 1) _
   Or НомНазПл Worksheets(№ПЛ).Range(«H» & ComboBox1.ListIndex + 1) _
   Then
   БОКС =MsgBox(«Извините но Вы забыли внести Получателя: » & Клиент& " в список Получателей ",, BOX)
    Exit Sub
    Else
    End If
  Счётчик2.Visible = True
  Предосмотр.Visible = True
   Вплатёжку'функция сохраняющая данные в платёжке
  ActiveWorkbook.Save
  Windows(«Платёжки» & Year(Date)).Activate
  СохранитьНов.Visible = False
  Создать.Visible = True
   X = 1
   WhileLen(Worksheets(№ПЛ).Range(«A» & X)) 0
   X = X + 1
   Wend
  Worksheets(№ПЛ).Select
   Range(«A»& X).Select
  Selection.NumberFormat = "#,##0"
  Worksheets(№ПЛ).Range(«A» & X) = X
  Range(«g» & X).Select
  Selection.NumberFormat = "#,##0"
  Worksheets(№ПЛ).Range(«g» & X) = CDbl(Деньги)
  Worksheets(№ПЛ).Range(«c» & X) = Банк
   Worksheets(№ПЛ).Range(«d»& X) = Счёт
  Worksheets(№ПЛ).Range(«b» & X) = Клиент
  Worksheets(№ПЛ).Range(«e» & X) = КодБанка
  Worksheets(№ПЛ).Range(«f» & X) = УНН
  Worksheets(№ПЛ).Range(«h» & X) = Дата
  Worksheets(№ПЛ).Range(«I» & X) = ДатаУслуг
   Worksheets(№ПЛ).Range(«J»& X) = ВидОперации
  Worksheets(№ПЛ).Range(«K» & X) = НазначПлатежа1
  Worksheets(№ПЛ).Range(«L» & X) = НомНазПл
  Worksheets(№ПЛ).Range(«M» & X) = МП1
  
  Windows(«Платёжка.xls»).Activate
  Worksheets(«Лист1»).Range(«O2») = X
  
   Windows(«Клиенты»& Year(Date)).Activate
  Worksheets(№ПЛ).Range(«L» & ComboBox1.ListIndex + 1).NumberFormat= "@"
 
  Worksheets(№ПЛ).Range(«L» & ComboBox1.ListIndex + 1) = _
  Worksheets(№ПЛ).Range(«L» & ComboBox1.ListIndex + 1) +"" & X & "."
   ActiveWorkbook.Save
  Windows(«Платёжки» & Year(Date)).Activate
  ActiveWorkbook.Save
End Sub
Private SubСтарыеПл_Click()
IfСтарыеПл.Value = True Then
 ComboBox1.Visible = False
 НомерПл.Visible = True
  Label1.Visible= False
 Label14.Visible = True
 Счётчик.Visible = True
 Счётчик.SetFocus
 КСтарПл.Visible = True
 Создать.Visible = False
 Измениния.Visible = False
 ДобавитьПол.Visible = False
 УбитьКлиента.Visible = False
 СохранитьНов.Visible = False
 ЗаПрошлыйГод.Visible = True
  Счётчик2.Visible= True
 Предосмотр.Visible = True
 ИзмененияСТ.Visible = True
  Вконец.Visible= True
 номерСТПЛ.Visible = True
 ПоНомеру.Visible = True
 СтарыеПл.Caption = «Вернуться к созданию платёжек»
 
  Счётчик = 0
  Счёт =""
  Банк =""
  Клиент =""
  КодБанка =""
  УНН =""
  ВидОперации =""
  НазначПлатежа1= ""
  НомНазПл =""
  НомерПл =""
  Дата =""
  Деньги =""
  ДатаУслуг =""
Else
  If Год Year(Date) Then
 Windows(«Платёжки» & Год).Activate
 ActiveWindow.Close
  Год =Year(Date)
  Else
  End If
  Дата = Date
  Счёт =""
  Банк =""
  Клиент =""
  КодБанка =""
  УНН =""
  ВидОперации =""
  НазначПлатежа1= ""
  НомНазПл =""
  Деньги =""
  ДатаУслуг =""
 ComboBox1.ListIndex = True
 НомерПл.Visible = False
  Label1.Visible= True
 Label14.Visible = False
 Счётчик.Visible = False
 КСтарПл.Visible = False
 Измениния.Visible = True
 ДобавитьПол.Visible = True
 УбитьКлиента.Visible = True
 СохранитьНов.Visible = True
 ЗаПрошлыйГод.Visible = False
 ComboBox1.Visible = True
 Счётчик2.Visible = False
 Предосмотр.Visible = False
 ИзмененияСТ.Visible = False
  Вконец.Visible= False
 номерСТПЛ.Visible = False
 ПоНомеру.Visible = False
 СтарыеПл.Caption = «Посмотреть старые платёжки»
 End If
End Sub
Private SubСоздать_Click()
 Windows(«Платёжка.xls»).Activate
  Впечать'функция печати
 Создать.Visible = False
 Счётчик2.Visible = False
End Sub
Private SubСчётчик_Change()
Windows(«Платёжки»& Год).Activate
 If Счётчик = 0Then
  Exit Sub
 Else
  Клиент =Worksheets(№ПЛ).Range(«B» & Счётчик)
  Счёт =Worksheets(№ПЛ).Range(«D» & (Счётчик))
  Банк =Worksheets(№ПЛ).Range(«C» & (Счётчик))
  НомерПл =Worksheets(№ПЛ).Range(«A» & (Счётчик))
  КодБанка =Worksheets(№ПЛ).Range(«E» & (Счётчик))
  УНН =Worksheets(№ПЛ).Range(«F» & (Счётчик))
  Деньги =Worksheets(№ПЛ).Range(«g» & Счётчик)
  ДатаУслуг =Worksheets(№ПЛ).Range(«I» & Счётчик)
  ВидОперации =Worksheets(№ПЛ).Range(«J» & Счётчик)
  НазначПлатежа1= Worksheets(№ПЛ).Range(«K» & Счётчик)
  НомНазПл =Worksheets(№ПЛ).Range(«L» & Счётчик)
  Дата =Worksheets(№ПЛ).Range(«h» & Счётчик)
  МестоПечати1'функция работающая с МП, БП, БезПечати
              'задаёт значения этим компонентам
 Windows(«Платёжка.xls»).Activate
  Вплатёжку'функция сохраняющая данные в платёжке
 End If
End Sub
Private SubУбитьКлиента_Click()
Windows(«Клиенты»& Year(Date)).Activate
IfLen(ComboBox1) = 0 Then
  БОКС =MsgBox(«Вы не выбрали не одного Получателя для удаления...»,, BOX)
  Exit Sub
  'ElseIfComboBox1.ListIndex = -1 Then
  End If
  Dim a
  a = ComboBox1
  БОКС =MsgBox(«Вы действительно хотите удалить Получателя :  » & a,vbYesNo, BOX)
 If БОКС vbYes Then
  Exit Sub
  ElseIfLen(Worksheets(№ПЛ).Range(«L» & ComboBox1.ListIndex + 1)) 0 Then
  БОКС =MsgBox(«Извините, но Вы не можете удалить Получателя :  » & a _
  & Chr(10)& «так-как по нему производились платежи. » _
  & Chr(10)& «Удалить этого Получателя Будет можно лишь УДАЛИВ ПЛАТЕЛЬЩИКА !!! » _
  & Chr(10)& «В форме ПЛАТЕЛЬЩИКИ !!!» & Chr(10) & Chr(10) & _
  Платящий,vbCritical, BOX)
  Exit Sub
 End If
 IfComboBox1.ListIndex = -1 Then
  Exit Sub
  Else
 Windows(«Клиенты» & Year(Date)).Activate
 Worksheets(№ПЛ).Select
 Rows(ComboBox1.ListIndex + 1).Select
 Selection.Delete Shift:=xlUp 'Удаляем запись о клиенте
  a = ComboBox1
 ComboBox1.RemoveItem (ComboBox1.ListIndex)
 ActiveWorkbook.Save
  БОКС =MsgBox(«Вы удалили Получателя :  » & a,, BOX)
 ComboBox1.ListIndex = -1
  Счёт =""
  Банк =""
  Клиент =""
  КодБанка =""
  УНН =""
  ВидОперации =""
  НазначПлатежа1= ""
  НомНазПл =""
  НомерПл =""
  Деньги =""
  ДатаУслуг =""
 End If
End Sub
Private SubВконец_Click()
 Windows(«Платёжки» & Год).Activate
  X = 1
WhileLen(Worksheets(№ПЛ).Range(«A» & (X))) 0
  X = X + 1
Wend
  Счётчик.Value= X — 1
End Sub
 
Private SubПоНомеру_Click()
 IfLen(номерСТПЛ) = 0 Then
  БОКС =MsgBox(«Вы забыли ввести номер платёжки»,, BOX)
 номерСТПЛ.SetFocus
  Exit Sub
 ElseIfномерСТПЛ > 0 And номерСТПЛ
  Счётчик.Value= номерСТПЛ
  номерСТПЛ =""
  номерСТПЛ.SetFocus
 Else
  Вконец = True
  БОКС =MsgBox(«Был введён № несуществующей платёжки… Поэтому выполнен переход кконцу списка платёжек »,, BOX)
 номерСТПЛ.SetFocus
 Exit Sub
End If
If Len(НомерПл)= 0 Then
  Вконец = True
  БОКС =MsgBox(«Был введён № несуществующей платёжки… Поэтому выполнен переход кконцу списка платёжек »,, BOX)
 номерСТПЛ.SetFocus
  Else
 End If
End Sub
Private FunctionTRIMF()
   Клиент =TRIM(Клиент)
   Банк =TRIM(Банк)
   Счёт =TRIM(Счёт)
   КодБанка =TRIM(КодБанка)
   Счёт =TRIM(Счёт)
   КодБанка =TRIM(КодБанка)
   УНН =TRIM(УНН)
   ВидОперации =TRIM(ВидОперации)
   НомНазПл =TRIM(НомНазПл)
   Дата =TRIM(Дата)
   ДатаУслуг =TRIM(ДатаУслуг)
  НазначПлатежа1 = TRIM(НазначПлатежа1)
   Деньги =TRIM(Деньги)
  
End Function
Private FunctionПроверка() As String
   TRIMF
   IfПроверкаОБЩ = False Then
   Проверка =False
   Exit Function
   Else
    Проверка =True
   End If
  
End Function
Private FunctionПроверкаПЛ() As String
   TRIMF
   IfПроверкаОБЩ = False Then
   ПроверкаПЛ =False
   Exit Function
   Else
   End If
   IfLen(НазначПлатежа1) = 0 Then
   MsgBox«Извините но в 'Строке Введите Назначение Платежа' пусто»
  НазначПлатежа1.SetFocus
  ПроверкаПЛ =False
   Exit Function
   ElseIfIsDate(Дата) = False Then
   MsgBox«Извините но в 'Строке Дата' ошибка или Вы забыли  её ввести»
   Дата.SetFocus
  ПроверкаПЛ =False
   Exit Function
   ElseIfLen(Деньги) = 0 Or Деньги = «0» Then
   БОКС =MsgBox(«Извините но в 'Строке Введите Сумму' пусто»,, BOX)
   Деньги.SetFocus
   Деньги =""
  ПроверкаПЛ =False
   Exit Function
   Else
  ПроверкаПЛ =True
   End If
  End Function
 
Private FunctionПроверкаОБЩ() As String
If Len(Клиент) =0 Then
   БОКС =MsgBox(«Извините но в Строке Наименование Клиента пусто»,, BOX)
  Клиент.SetFocus
  ПроверкаОБЩ =False
   Exit Function
ElseIf Len(Банк)= 0 Then
   БОКС =MsgBox(«Извините но в Строке Банк Клиента пусто»,, BOX)
   Банк.SetFocus
  ПроверкаОБЩ =False
   Exit Function
ElseIf Len(Счёт)= 0 Then
   БОКС =MsgBox(«Извините но в Строке Р/с Клиента пусто»,, BOX)
   Счёт.SetFocus
  ПроверкаОБЩ =False
   Exit Function
ElseIfLen(КодБанка) = 0 Then
   БОКС =MsgBox(«Извините но в Строке Код Банка Клиента пусто»,, BOX)
  КодБанка.SetFocus
  ПроверкаОБЩ =False
   Exit Function
   Else
 ПроверкаОБЩ =True
   End If
End Function
Private SubСчёт_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
 End Sub
Private SubДеньги_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
 If Mid(Деньги,1, 1) = «0» Then
    Деньги =""
 Else
 End If
End Sub
Private SubКодБанка_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
End Sub
Private SubУНН_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
End Sub
Private SubВидОперации_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
End Sub
Private SubНомНазПл_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
End Sub
Private SubНомерСТПЛ_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
 If (Not(Chr(KeyAscii) Like "[0-9]")) Then KeyAscii = 0
End Sub
Private FunctionВпечать() As String
Sheets(«Лист1»).Select
If Счётчик2 = 1Then
  ActiveWorkbook.Save
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
   ElseIfСчётчик2 = 2 Then
   Range(«A1:W28»).Select
   Selection.Copy
   Range(«A29»).Select
   ActiveSheet.Paste
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  Rows(«29:80»).Select
  Selection.Delete Shift:=xlUp
  ActiveWorkbook.Save
   ElseIfСчётчик2 = 3 Then
   Range(«A1:W28»).Select
   Selection.Copy
   Range(«A29»).Select
   ActiveSheet.Paste
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  Rows(«29:80»).Select
 Selection.Delete Shift:=xlUp
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  ActiveWorkbook.Save
   End If
End Function
Private FunctionВплатёжку() As String
  Windows(«Платёжка.xls»).Activate
   Дата =Format(Дата, «Short Date»)
  Worksheets(«Лист1»).Range(«D13») = Банк
  Worksheets(«Лист1»).Range(«Q11») = Счёт
  Worksheets(«Лист1»).Range(«E12») = Клиент
   Worksheets(«Лист1»).Range(«P14»)= КодБанка
  Worksheets(«Лист1»).Range(«C12») = УНН
  Worksheets(«Лист1»).Range(«T7») = (Деньги &"=")
  Worksheets(«Лист1»).Range(«G4») = Format(Дата, «d mmmmyyyy»)
  Worksheets(«Лист1»).Range(«L19») = ДатаУслуг
  Worksheets(«Лист1»).Range(«V19») = ВидОперации
  Worksheets(«Лист1»).Range(«B22») = НазначПлатежа1
  Worksheets(«Лист1»).Range(«O2») = НомерПл
  Worksheets(«Лист1»).Range(«V20») = НомНазПл
   МестоПечати'Функция работающая с параметрами места печати в платёжке
   Worksheets(«Лист1»).Range(«C27»)= МП1
End Function
   PrivateFunction МестоПечати() As String
   If МП = TrueThen
   МП1 =«М/П»
   ElseIf БП =True Then
   МП1 =«Б/П»
   ElseIfБезПечати = True Then
   МП1 =""
   End If
   End Function
  
   PrivateFunction МестоПечати1() As String
   IfWorksheets(№ПЛ).Range(«M» & Счётчик) = «М/П» Then
    МП = True
   ElseIfWorksheets(№ПЛ).Range(«M» & Счётчик) = «Б/П» Then
    БП = True
   ElseIfWorksheets(№ПЛ).Range(«M» & Счётчик) = "" Then
    БезПечати =True
   End If
   End Function


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.