аВ» на головній формі В«ПоштаВ». p> Виклик головної форми В«Пошта проводиться автоматично при відкритті робочої книги. В
Додаток Б
Нижче представлені основні смислові фрагменти коду програми. p> дублюються фрагменти коду (наприклад, супровідної відомості отриманої і відправленої кореспонденції) наводяться 1 раз.
'Обробка натискання кнопки «³дправитиВ». Додавання даних у вихідну таблицю
Private Sub CommandButton11_Click ()
Dim Flag As Boolean
Flag = True
If IsNumeric (TextBox6.Text) = False Or IsDate (TextBox1.Text) = False Or ComboBox1.Value = »« Or _
ComboBox1.Value = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _
TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then Flag = False
If Flag = False Then
a = MsgBox ("Дані введені невірно або не повністю", vbCritical, "Помилка")
Exit Sub
End If
Sheets ("Відправлена кореспонденція "). Select
Range ("A3"). Select
Selection.CurrentRegion.Select
i = Selection.Rows.Count
j = i + 3
Range ("A" & J). Value = i
Range ("B" & J). Value = TextBox1.Text
Range ("C" & J). Value = ComboBox1.Value
Range ("D" & J). Value = ComboBox2.Value
Range ("E" & J). Value = TextBox2.Text
Range ("F" & J). Value = TextBox3.Text
Range ("G" & J). Value = TextBox5.Text
Range ("H" & J). Value = TextBox4.Text
Range ("I" & J). Value = TextBox6.Text
Range ("J" & J). Value = Label10.Caption
End Sub
'Обробка натискання кнопки друку квитанції про оплату відправки кореспонденції
Private Sub CommandButton4_Click ()
If IsNumeric (TextBox6.Text) = False Or IsDate (TextBox1.Text) = False Or ComboBox1.Value = "" Or _
ComboBox1.Value = "" Or TextBox1.Text = "" Or TextBox2.Text = "" Or TextBox3.Text = "" Or _
TextBox4.Text = "" Or TextBox5.Text = "" Or TextBox6.Text = "" Then
a = MsgBox ("Дані введені невірно або не повністю", vbCritical, "Помилка")
Exit Sub
End If
Sheets ("Відправлена кореспонденція "). Select
Range ("A3"). Select
Selection.CurrentRegion.Select
i = Selection.Rows.Count - 1
Sheets ("Бланки"). Select
Range ("Q18"). Value = TextBox1.Text
Range ("P19"). Value = I
Range ("M23"). Value = TextBox2.Text
Range ("M24"). Value = TextBox3.Text
Range ("M25"). Value = TextBox5.Text
Range ("M26"). Value = TextBox4.Text
Range ("N27"). Value = ComboBox1.Value
Range ("L28"). Value = TextBox6.Text
Range ("M29"). Value = Label10.Caption
Application.Visible = True
For Each m In Sheets
If m.Name <> "Бланки" Then m.Visible = False
Next m
Application.Visible = True
Почта.Hide
End Sub
' функція , розраховує вартість відправлення
Private Function DispatchCost (City As String, Kind As String, Optional weight As Double)
Sheets ("Вартість відправки "). Select
Range ("A2"). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count
For i = 3 To n Step 1
If InStr (1, Sheets ("Вартість відправки"). Range ("A" & i). Value, City, vbTextCompare)> 0 Then
If Kind = "посилка" Then DispatchCost = weight * Range ("B" & I). Value
If Kind = "бандероль" Then DispatchCost = weight * Range ("E" & I). Value
If Kind = "рекомендований лист" Then DispatchCost = weight * Range ("H" & i). Value
End If
Next i
End Function
'Перерахунок вартості відправки кореспонденції при зміні міста. Аналогічний код обробляє зміна ваги і типу кореспонденції
Private Sub ComboBox2_Change ()
If IsNumeric (TextBox6.Text) And ComboBox1.Value <> "" And ComboBox2.Value <> "" And TextBox6.Text <> "" _
Then Label10.Caption = DispatchCost (ComboBox2.Value, ComboBox1.Value, CDbl (TextBox6.Text)) _
Else Label10.Caption = »«
End Sub
'Звіт за напрямами (відправлення)
Private Sub CommandButton5_Click ()
Worksheets ("Звіти"). Activate
Cells (3, 1). Select
Selection.CurrentRegion.Select
n = Selection.Rows.Count + 2
Worksheets ("Відправлена кореспонденція "). Select
Cells (3, 1). Select
Selection.CurrentRegion.Select
n2 = Selection.Rows.Count + 2
For i = 4 To n Step 1
Sheets ("Звіти"). Select
CurrentCity = Range ("A" & i). Value 'перебір міст
Count1 = 0
Count2 = 0
Count3 = 0
Sum1 = 0
Sum2 = 0
Sum3 = ...