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 for Application. Так же имеется четырифайла 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. “Microsoft OFFICE97 разработка приложений” К. Соломон издательство “БХВ ” г. Санкт-Петербург 1998 год.

2. Кен Гетц. Майк Джилберт ” Программирование в Microsoft Office ” – издательство ” Печатный двор” Государственного комитета РФ по печати г. Санкт-Петербург 1999 год.

3. М. МакКелви и др. ” Visual Basic 5 ” издательство ” BHV-Санкт-Петербург” 1998 год.

4. Р. Персон. “Excel для Windows 95 ” издательство ” BHV-Санкт-Петербург” 1998 год.

5. Р. Винтер. “Microsoft Office для Windows 95 ” издательство ” BHV-Санкт-Петербург” 1998 год.

6. Фигурнов В. Э.” IBM PC для пользователя.” – М: Финансы и статистика, 1991.

7.Ч. Петзолд “Программирование для Windows 95 ” издательство ” BHV-Санкт-Петербург” 1998 год.

8 . Ф. Новиков, А.Яценко. “Microsoft Office в целом” издательство ” BHV-Санкт-Петербург” 1998 год.

Исходный текст основного программного модуля.

Dim №ПЛ As String

Dim Платящий As String

Dim BOX

Dim БОКС

Dim МП1 As String

Dim Год

Private Sub ComboBox1_Change()

Windows(“Клиенты” &; Year(Date)).Activate

If ComboBox1.ListIndex = -1 Then

Exit Sub

End If

a = ComboBox1.ListIndex

Счетчик2.Visible = False

Создать. Visible = False

Предосмотр. Visible = False

СохранитьНов. Visible = True

If Len(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 < 0 Then

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. RunAutoMacros Which:=xlAutoClose

End Sub

Private Sub UserForm_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)

While Len(Worksheets(№ПЛ).Range(“A” &; X)) <> 0

ComboBox1.AddItem (Worksheets(№ПЛ).Range(“A” &; X))

X = X + 1

Wend

End Sub

Private Sub ЗаПрошлыйГод_Click()

If Dir(“C:\Program Files\Платежка\Платежки” &; (Year(Date) – 1) &; “.xls”) = _

“Платежки” &; (Year(Date) – 1) &; “.xls” Then

Workbooks. Open FileName:=”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 Sub UserForm_Initialize()

If Dir(“C:\Program Files\Платежка\Клиенты” &; Year(Date) &; “.xls”) <> _

“Клиенты” &; Year(Date) &; “.xls” Then

Workbooks. Open FileName:=”C:\Program Files\Платежка\Клиенты” &; (Year(Date) – 1)

Windows(“Клиенты” &; (Year(Date) – 1)).Activate

ActiveWorkbook. SaveAs FileName:=”C:\Program Files\Платежка\Клиенты” &; Year(Date)

Workbooks. Open FileName:=”C:\Program Files\Платежка\Платежки” &; (Year(Date) – 1)

Windows(“Платежки” &; (Year(Date) – 1)).Activate

ActiveWorkbook. SaveAs FileName:=”C:\Program Files\Платежка\Платежки” &; Year(Date)

Workbooks. Open FileName:=”C:\Program Files\Платежка\Плательщики. xls”

Windows(“Плательщики. xls”).Activate

X = 1

Do While Len(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. Open FileName:=”C:\Program Files\Платежка\Платежка. xls”

Windows(“Плательщики. xls”).Activate

Worksheets(“Года”).Select

X = 1

While Len(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. Open FileName:=”C:\Program Files\Платежка\Клиенты” &; Year(Date)

Workbooks. Open FileName:=”C:\Program Files\Платежка\Платежки” &; Year(Date)

Workbooks. Open FileName:=”C:\Program Files\Платежка\Платежка. xls”

Workbooks. Open FileName:=”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

While Len(Worksheets(№ПЛ).Range(“A” &; X)) <> 0

ComboBox1.AddItem (Worksheets(№ПЛ).Range(“A” &; X))

X = X + 1

Wend

End Sub

Private Sub UserForm_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. RunAutoMacros Which:=xlAutoClose

End Sub

Private Sub Измениния_Click()

Windows(“Клиенты” &; Year(Date)).Activate

If Проверка = False Then ‘ Проверка на правильность ‘ функция находится в конце программы

Exit Sub ‘ введенной информац

Else ‘ функция находится в конце программы

End If

X = 1

Do While X < ComboBox1.ListCount + 1

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 ‘ Проверка на правильность ‘ функция находится в конце программы

Exit Sub ‘ введенной информац

Else ‘ функция находится в конце программы

End If

X = 1

Do While X < ComboBox1.ListCount + 1

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

While Len(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 ‘ Проверка на правильность

Exit Sub ‘ введенной информации

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 ‘ Проверка на правильность

Exit Sub ‘ введенной информации

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 As Single, 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 As Single, ByVal Y As Single)

Label16.Caption = “Кнопка ‘Отчеты’ для перехода в форму ОТЧЕТЫ. Там Вы сможете узнать куда же делись Ваши деньги!!!”

End Sub

Private Sub Выход_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Кнопка ‘Выход’ для выхода из программы. Если решили выйти смело жмите, программа сохранит результаты вашей работы.”

End Sub

Private Sub УбитьКлиента_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Нажав на эту кнопку Вы можете удалить выбранного Получателя из списка Получателей “

End Sub

Private Sub ПоНомеру_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Введите номер платежки в расположенное рядом с этой кнопкой небольшое поле. Затем нажмите на эту кнопку и вы перейдете к платежке с введенным вами номером. “

End Sub

Private Sub Вконец_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Нажав на эту кнопку Вы осуществите переход к концу списка платежек “

End Sub

Private Sub Измениния_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Нажав на эту кнопку Вы внесете изменения в список Получателей “

End Sub

Private Sub ДобавитьПол_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Нажав на эту кнопку Вы внесете в список Получателей Ваших денег данные о новом Получателе “

End Sub

Private Sub ИзмененияСТ_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Нажав на эту кнопку Вы можете сохранить изменения в старом платежном поручении”

End Sub

Private Sub КСтарПл_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = ” Нажав на эту кнопку Вы можете распечатать Ваше старое платежное поручения” _

&; ” Не забудьте выбрать кол-во копий в выпадающем списке рядом с кнопкой”

End Sub

Private Sub СохранитьНов_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Эта кнопка предназначена для сохранения созданного платежного поручения”

End Sub

Private Sub Создать_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Нажав на эту кнопку Вы можете распечатать Ваше платежное поручения” _

&; ” Не забудьте выбрать кол-во копий в выпадающем списке рядом с кнопкой”

End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = Платящий

End Sub

Private Sub Плательщики_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Нажав эту кнопка Вы можете поменять текущего Плательщика или внести изменения в существующие данные о Плательщике”

End Sub

Private Sub Сегодня_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Кнопка для вставки текущей даты в формируемую платежку”

End Sub

Private Sub КодБанка_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Обязательное поле. В это поле вносят код банка Получателя. Допускаются только цифровые значения.”

End Sub

Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Что бы вставить данные Получателя платежа востользуйтесь этим выпадающем списком. Если данные отсутствуют, значит придется добавить нового Получателя.”

End Sub

Private Sub Label14_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Номер текущей платежки”

End Sub

Private Sub Дата_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, 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 As Single, ByVal Y As Single)

Label16.Caption = “НЕ обязательное поле. В это поле вносят УНН Получателя. Допускаются только цифровые значения.”

End Sub

Private Sub НазначПлатежа1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Обязательное поле. В это поле вносят сведения за что Вы собственно платите.” _

&; “СОВЕТ если Вы знаете, что будете здесь писать почти всегда одно и тоже ” _

&; “то нажмите кнопку Внести изменения в данные о Получателе.”

End Sub

Private Sub Клиент_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Обязательное поле. В это поле вносят Наименование Получателя. На пример: “”ООО Приятные Мелочи”””

End Sub

Private Sub Банк_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Обязательное поле. В это поле вносят Наименование Банка Получателя. На пример: “”ОАО Белбизнесбанк г. Могилев”””

End Sub

Private Sub Счет_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Обязательное поле. В это поле вносят № расчетного счета Получателя. Допускаются только цифровые значения.”

End Sub

Private Sub ДатаУслуг_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “НЕ обязательное поле. В это поле вносят дату получения товара или оказания услуг. Пример: Предоплата или 28 марта 2000г.”

End Sub

Private Sub ВидОперации_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “НЕ обязательное поле. В это поле вносят число отражающее вид операции. Допускаются только цифровые значения.”

End Sub

Private Sub НомНазПл_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “НЕ обязательное поле. В это поле вносят число отражающее код назначения платежа. Допускаются только цифровые значения.”

End Sub

Private Sub Деньги_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Обязательное поле. В это поле вносят сумму платежа. Допускаются только цифровые значения.”

End Sub

Private Sub Минус_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

Label16.Caption = “Отнимает один день от текущей даты.”

End Sub

Private Sub Плюс_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, 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

If ComboBox1.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

While Len(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 Счетчик = 0 Then

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

If Len(ComboBox1) = 0 Then

БОКС = MsgBox(“Вы не выбрали не одного Получателя для удаления…”, , BOX)

Exit Sub

‘ElseIf ComboBox1.ListIndex = -1 Then

End If

Dim a

a = ComboBox1

БОКС = MsgBox(“Вы действительно хотите удалить Получателя : ” &; a, vbYesNo, BOX)

If БОКС <> vbYes Then

Exit Sub

ElseIf Len(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

If ComboBox1.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

While Len(Worksheets(№ПЛ).Range(“A” &; (X))) <> 0

X = X + 1

Wend

Счетчик. Value = X – 1

End Sub

Private Sub ПоНомеру_Click()

If Len(номерСТПЛ) = 0 Then

БОКС = MsgBox(“Вы забыли ввести номер платежки”, , BOX)

номерСТПЛ. SetFocus

Exit Sub

ElseIf номерСТПЛ > 0 And номерСТПЛ < 65501 Then

Счетчик. 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 Function TRIMF()

Клиент = 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

If Len(НазначПлатежа1) = 0 Then

MsgBox “Извините но в ‘Строке Введите Назначение Платежа’ пусто”

НазначПлатежа1.SetFocus

ПроверкаПЛ = False

Exit Function

ElseIf IsDate(Дата) = False Then

MsgBox “Извините но в ‘Строке Дата’ ошибка или Вы забыли ее ввести”

Дата. SetFocus

ПроверкаПЛ = False

Exit Function

ElseIf Len(Деньги) = 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

ElseIf Len(КодБанка) = 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 = 1 Then

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 mmmm yyyy”)

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

Private Function МестоПечати() As String

If МП = True Then

МП1 = “М/П”

ElseIf БП = True Then

МП1 = “Б/П”

ElseIf БезПечати = True Then

МП1 = “”

End If

End Function

Private Function МестоПечати1() As String

If Worksheets(№ПЛ).Range(“M” &; Счетчик) = “М/П” Then

МП = True

ElseIf Worksheets(№ПЛ).Range(“M” &; Счетчик) = “Б/П” Then

БП = True

ElseIf Worksheets(№ПЛ).Range(“M” &; Счетчик) = “” Then

БезПечати = True

End If

End Function


Зараз ви читаєте: VBA Платежка