Сторінка
9

Автоматизацiя контролю вiдвiдування студентами занять

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))

Перейти на сторінку номер:
 1  2  3  4  5  6  7  8  9  10  11 


Інші реферати на тему «Інформатика»: