Сторінка
9
Sheets(Find).Range("AH3").FormulaR1C1 = "=IF(RC[-32]=""ВСЬОГО"",SUM(R[-1]C34:R3C),IF(RC[-33]="""","""",COUNTIF(RC[-31]:RC[-1],""Б"")))"
Sheets(Find).Range("AH3").AutoFill Destination:=Sheets(Find).Range("AH3:AH100"), Type:=xlFillDefault
Sheets(Find).Range("AI3").FormulaR1C1 = "=IF(RC[-33]=""ВСЬОГО"",SUM(R[-1]C35:R3C),IF(RC[-34]="""","""",COUNTIF(RC[-32]:RC[-2],""П"")))"
Sheets(Find).Range("AI3").AutoFill Destination:=Sheets(Find).Range("AI3:AI100"), Type:=xlFillDefault
' Sheets(Find).Visible = False
GoTo 1
Else
1: 'Копія даних відвідування
Лист1.Range("A5").Value = Find
Sheets(Find).Range("C3:AG100").Copy
Лист1.Range("E7").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Лист1.Range("E5").Select
Selection.Value = "Дані відвідування за " + Range("A4").Value + _
" місяць групи № " + Str(Range("A2").Value)
Лист1.ComboBox1.Enabled = False
Лист1.ComboBox2.Enabled = False
Лист1.CommandButton1.Enabled = False
Лист1.CommandButton2.Enabled = True
Лист1.CommandButton3.Enabled = True
Лист1.Range("A1").Value = "Yes"
End If
End Sub
Макрос клавіші “Очистити” на листі “Ввід”
Реакція програми на натиснення клавіші “Очистити”:
· Вивід попереджувального вікна і отримання відповіді від користувача
· В випадку позитивної відповіді:
o заборона виводу прізвищ
o Відключення клавіш “Очистити” і “Зберегти”
o Включення елементів вибору групи і місяця та клавіші “Вивести”
Private Sub CommandButton2_Click()
but = MsgBox("Ви дійсно хочете очистити таблицю відвідування ?", vbQuestion _
+ vbOKCancel)
If but = 1 Then
Range("E7:AI100").Cells.Formula = ""
Range("E5").Value = ""
Лист1.ComboBox1.Enabled = True
Лист1.ComboBox2.Enabled = True
Лист1.CommandButton2.Enabled = False
Лист1.CommandButton1.Enabled = True
Лист1.CommandButton3.Enabled = False
Range("A1").Value = "No"
End If
End Sub
Макрос клавіші “Зберегти” на листі “Ввід”
Реакція програми на натиснення клавіші “Зберегти”:
· Перевірка листа на предмет наявності помилок і в випадку їх присутності вивід відповідного повідомлення.
· Збереження даних на відповідному листі:
· Заборона виводу прізвищ
· Відключення клавіш “Очистити” і “Зберегти”
· Включення елементів вибору групи і місяця та клавіші “Вивести”
Private Sub CommandButton3_Click()
If Лист1.Range("A6") <> 0 Then
but = MsgBox("В даних знадені помилки. Виправте їх перед збережанням", vbCritical)
Else
but = MsgBox("Ви дійсно хочете зберегти дані відвідування ?", vbQuestion _
+ vbOKCancel)
If but = 1 Then
Лист1.Range("E5").Value = ""
Лист1.Range("E7:AI100").Copy
Sheets(Лист1.Range("A5").Value).Range("C3").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Лист1.Range("E7:AI100").Cells.Formula = ""
Лист1.ComboBox1.Enabled = True
Лист1.ComboBox2.Enabled = True
Лист1.CommandButton2.Enabled = False
Лист1.CommandButton1.Enabled = True
Лист1.CommandButton3.Enabled = False
Лист1.Range("A1").Value = "No"
End If
End If
End Sub
Макрос клавіші “Створити” на листі “Звіт”
Реакція програми на натиснення клавіші “Створити”:
· Очистка листа від попереднього звіту
· Для кожного вибраного в ListBox листа:
o Вивід «шапки»
o Перегляд даних і перевірка даних по кількості пропусків
o Копіювання відібраних даних на лист «Звіт»
· Створення узагальненого звіту
· Створення діаграми
Private Sub CommandButton1_Click()
RW = 17
GR = 0
Range("A17:AI5000").Clear
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) Then
'SH - Назва листа даних з поточною групою і місяцем
SH = Mid(ListBox1.List(I), 38, 6)
'Друкуємо шапку для групи і місяця
With Range("A" + Mid(Str(RW), 2) + ":AI" + Mid(Str(RW), 2))
.Merge
.HorizontalAlignment = xlCenter
.Font.Bold = True
.Value = Mid(ListBox1.List(I), 1, 29)
.Interior.ColorIndex = 4
End With
RW = RW + 1
PN = 1
'Шапка (З днями)
Range("A16:AI16").Copy
Range("A" + Mid(Str(RW), 2)).PasteSpecial
With Range("A" + Mid(Str(RW), 2) + ":AI" + Mid(Str(RW), 2))