Пользовательская форма (UserForm) для ввода данных по кредитам коммерческого банка. VBA Excel
Прикладное программирование - это написание исходного кода программ, которые предназначены для реализации конкретных задач и предполагают взаимообмен с пользователем.
- Организуйте ввод сведений в таблицу Excel
- Данные о выдаче кредитов банком (необходимые)
- Очистка текстовых полей формы
- Инициализация списка значений ComboBox
- Исходный код UserForm VBA Excel
Пакет Microsoft Office дает возможность автоматизации взаимодействия оператора с ЭВМ.
Организуйте ввод сведений в таблицу Excel
Задание: Организуйте ввод сведений в таблицу, содержащую данные о выдаче долгосрочных кредитов коммерческим банком со следующими данными: код получателя кредита, наименование получателя кредита, дата выдачи кредита, срок (3-4 срока), на который выдан кредит (в днях), процент, сумма кредита, дата оплаты процентов по кредиту.
Рис.1 Организуйте ввод сведений в таблицу Excel через UserForm VBA
Это, как вариант... Ведь совершенствовать можно сколько угодно.
Данные о выдаче кредитов банком (необходимые)
Код получателя кредита - длинное целое число. Тип Long. Для новых получателей генерируется автоматически. В таблице на листе - в колонке "A".
Наименование получателя кредита - строковая величина. Тип String. На форме хранится в ComboBox1. Можно вводить новые значения. В таблице на листе - в колонке "B".
Дата выдачи кредита - календарная дата. Тип Date. На форме выбирается из Calendar1. Помещается в TextBox1. В таблице на листе - в колонке "C".
Срок, на который выдан кредит (в днях) - целое число. Тип Integer. На форме выбирается из ComboBox2. В таблице на листе - в колонке "D".
Процент по кредиту - дробное число. Тип Single. На форме выбирается из ComboBox3. В таблице на листе - в колонке "E".
Сумма кредита - длинное целое число. Тип Long. На форме вносится в ТечеBox2. В таблице на листе - в колонке "F".
Дата оплаты процентов по кредиту - календарная дата. Тип Date. Вычисляется автоматически. В таблице на листе - в колонке "G".
Очистка текстовых полей формы
У объектов класса TextBox свойством по умолчанию является свойство Text. Таким образом, в короткой записи этому свойству присваивается значение "пустая строка".
А объектам класса ComboBox следует свойство ListIndex установить в -1.
по коду:
//------------------------------
Private Sub CommandButton2_Click() 'очистка
TextBox1 = ""
TextBox2 = ""
ComboBox1.ListIndex = -1
ComboBox2.ListIndex = -1
ComboBox3.ListIndex = -1
End Sub
//------------------------------
Инициализация списка значений ComboBox
Список значений ComboBox1 приходится заполнять, перебирая в цикле значения второй колонки таблицы.
Конечно, следует исключить повторы, и желательно, выполнить сортировку, чтобы если список будет длинным, то пользователь мог бы быстрее найти нужное значение.
А списки значений ComboBox2 и ComboBox3 легко заполнить фиксированными списками из колонок "AE", "AF".
по коду:
//------------------------------
Private Sub Combo1Full(val As String) 'добавление в списк клиентов без повторов и с сортировкой
Dim i As Integer
For i = 0 To ComboBox1.ListCount - 1 'перебор списка
If ComboBox1.List(i) = val Then Exit Sub 'если уже есть -> выход
If ComboBox1.List(i) > val Then
ComboBox1.AddItem val, i 'если элемент больше -> то вставить перед ним и выход
Exit Sub
End If
Next i
ComboBox1.AddItem val, ComboBox1.ListCount 'если val больше всех элементов -> то вставить в конец списка
End Sub
//------------------------------
Private Sub Combo1Fulling() 'заполнение списка из таблицы
Dim i As Integer
For i = 2 To LastRow
Combo1Full Cells(i, 2)
Next i
End Sub
//------------------------------
Private Sub UserForm_Initialize()
Calendar1.Visible = False
Calendar1.Top = Frame2.Top
LastRow = GetLastRowFromColumn(LastColumn)
Combo1Fulling
ComboBox2.RowSource = "=AE2:AE" & 5
ComboBox3.RowSource = "=AF2:AF" & 5
Randomize
End Sub
//------------------------------
Исходный код UserForm VBA Excel
Почти весь исходный код расположен в модуле формы UserForm1.
А в модуле Лист1 расположены только короткие процедуры "Вызова формы", "Очистки таблицы" и "Запрета выделения ячеек в таблице".
скачать xlsm-файл для тестирования
Другие примеры на языке «Visual Basic for application - VBA»
Другие примеры на тему «Автоматизация документов Microsoft Office Excel, Word, Access»
Если у Вас остались вопросы, то задать их Вы можете, нажав на эту кнопочку ...
Поделиться в соц сетях: