ати в конструкції VBA:
Sub Cmb_Add_Click () n1 As Variant, n2 As Variant, n3 As Integer, n4 As Double, n5 As Date, n6 As Varianti As Integer, n As Byte, j As IntegerЛіст1TextBox1.Value=Empty Or TextBox2.Value=Empty Or TextBox3.Value=Empty Or TextBox4.Value=Empty Or TextBox5.Value=Empty Or TextBox6.Value=Empty ThenMsgBox ( не всі поля заповнені raquo ;, vbInformation) вихід вікна оповещеніяSub якщо не всі поля заповнені, то достроковий вихід з собитіяIf
'перевірка на наявний номерj=1 To UsedRange.Rows.CountTextBox1.Text=Cells (j, 2) Then ( номер вже використовується ) SubIf=TextBox1.Text=TextBox2.Text=TextBox3.Text=TextBox4.Text=TextBox5.Value=TextBox6.Text
'якщо ячеку по циклу вільна, то вбиваємо в рядок і виходимо з події
'інакше цикл збільшує значеніеi=2 To 32000Ліст1.Cells (i, 1)= Then (i, 1)=TextBox1.Value (i, 2)=TextBox2.Value (i, 3)=TextBox3.Value (i, 4)=TextBox4.Value (i, 6)=TextBox5.Value (i, 7 )=TextBox6.Value (i, 5)=Cells (i, 3) * Cells (i, 4) SubIfWithSub
Він містить у собі перевірку на індивідуальність номери, а також перевіряє поля на наявність в них символів. Якщо хоча б одна з них буде порожнім, виходить вікно оповіщення, і подія припиняється. Для заповнення полів необхідно відзначити одну чи кілька рядків в користувальницькому вікні Наявні товари raquo ;. Після обробки даних вони формуються в рядок і додаються в першу порожній рядок табліци1.
Текстові поля кількість і ціна мають обмеження на введення даних, тобто в них необхідно і можливо вводити тільки цифрові значення.
Алгоритм в конструкції VBA:
Private Sub TextBox3_KeyDown (ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode=vbKeyV And Shift=2 Then=0IfSub
Private Sub TextBox3_KeyPress (ByVal KeyAscii As MSForms.ReturnInteger)
If InStr ( 0123456789 raquo ;, ChrW (KeyAscii))=0 Then=0IfSubSub TextBox4_KeyDown (ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) KeyCode=vbKeyV And Shift=2 Then=0IfSub
Private Sub TextBox4_KeyPress (ByVal KeyAscii As MSForms.ReturnInteger)
If InStr ( 0123456789 raquo ;, ChrW (KeyAscii))=0 Then=0IfSub
Текстове поле Дата завжди показує дату моменту додавання вантажу і недоступно для зміни. Алгоритм в конструкції VBA:
Sub UserForm_Initialize (). Text=Date.Enabled=FalseSub
При активації форми всі текстові поля приймають порожні значення. Алгоритм в конструкції VBA:
Sub UserForm_Activate ()
'Очищення полів перед активацією форми.Value= .Value= .Value= .Value= .Value= Sub
Кнопка Назад виходить на попередню налаштовувану форму, перед цим сортуючи таблицу1, надалі чого змінюється і елемент Listbox (I_tovar) форми Наявні товари . Алгоритм в конструкції VBA:
Private Sub Cmb_Nazad_Click ()
включаємо функцію сортування перед зміною формиi As IntegershR As VariantshR=ThisWorkbook.Worksheets ( Наявні товари ). Range ( A1 ). Activate шапка таблиці=32000r As Range ' діапазон комірок таблиці з шапкойr=Range (shR.Cells (1, 1), shR.Cells (i, 7)). Sort key1:=r.Cells (2, 1), key2:=r.Cells (2, 2 ), key3:=r.Cells (2, 3), Header:=xlYes.Hide.ShowSub
Кнопка Вихід призводить до виходу з програми. Алгоритм в конструкції VBA: Sub Cmb_End_Click () Sub
. 3 Алгоритми зміни даних
Рис. 6.
Користувацька форма Продати товари Має об'єкт ListBox1, аналогічний Listbox (I_tovar) для синхронізації даних, а також три кнопки:
Додати до продажу raquo ;, назад і Вихід .заполняется методом Activate з табліци1. Алгоритм в конструкції VBA: Sub UserForm_Activate ()
Ліст1.Activatei As Integer.Font.Size=12.MultiSelect=fmMultiSelectMultiListBox1=7 кількість колонок= 130,80,80,80,80,90,80 ширина столбцовi=2 To 32000Cells (i + 1, 1)= Then
AddItem Cells (i, 1) (ListBox1.ListCount - 1, 1)=Cells (i, 2) (ListBox1.ListCount - 1, 2)=Cells (i, 3) (ListBox1. ListCount - 1, 3)=Cells (i, 4) (ListBox1.ListCount - 1, 4)=Cells (i, 5) (ListBox1.ListCount - 1, 5)=Cells (i, 6) (ListBox1.ListCount -1, 6)=Cells (i, 7)
Exit Sub
AddItem Cells (i, 1) (ListBox1.ListCount - 1, 1)=Cells (i, 2) (ListBox1.ListCount - 1, 2)=Cells (i, 3) (ListBox1. ListCount - 1, 3)=Cells (i, 4) (ListBox1.ListCount - 1, 4)=Cells (i, 5) (ListBox1.ListCount - 1,...