WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Автоматизацiя контролю вiдвiдування студентами занять - Контрольна робота

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

...)
Значение1, значение2, ... - це від 1 до 30 аргументів, кількість яких потрібно підрахувати. В даному випадку значеннями вважається значення любого типу, включаючи порожній рядок (""), але не включаючи порожні комірки. Якщо аргументом є масив чи ссилка, то порожні комірки в масиві чи ссилці ігноруються.
Макрос клавіші "Ок" на листі "Списки"
Реакція програми на натиснення клавіші "Ok":
" Перегляд комірок в діапазоні С3:IV3 і виправлення в них номерів груп (контроль за їх довжиною)
" Сортування списків студентів по номеру групи
" Підбір ширини колонок із списками груп
" Установка списку вибору номерів груп в ComboBox1 на листі "Ввід"
Private Sub CommandButton1_Click()
For Each w In Range("C3:IV3")
If w.Value "" Then
w.Value = Mid(w.Value, 1, 3)
If Len(w.Value) < 3 Then w.Value = String(3 - Len(w.Value), "0") + Mid(Str(w.Value), 2)
End If
Next
Range("C3:IV100").Sort Key1:=Range("C3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
Range("C3:IV3").Copy
Range("A4").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Лист1.ComboBox1.ListFillRange = "Списки!A4:A" + Mid(Str(Range("E1").Value + 3), 2)
Columns("C:IV").Columns.AutoFit
End Sub
Макрос клавіші "Вивести" на листі "Ввід"
Реакція програми на натиснення клавіші "Вивести":
" Перегляд назв всіх листів у книзі з метою встановлення наявності вибраного листа
" В випадку відсутності вибраного листа виконується його автоматичне створення
o Створення заголовка таблиці
o Вибір кольору
o Підбір ширини комірок
o Запис формул в лист
" Копіювання даних з заданого листа на лист "Ввід" і включення виводу списка студентів на листі
" Відключення елементів вибору групи і місяця, відключення клавіші "Вивести", включення клавіш "Очистити" і "Зберегти"
Private Sub CommandButton1_Click()
Found = False
Find = Range("A3").Value2 + "-" + Range("A2").Value2
For Each Wh In Worksheets
If Wh.Name = Find Then Found = True
Next
If Found = False Then
' СТВОРЕННЯ НОВОГО ЛИСТА
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Find
Sheets("Ввід").Activate
Sheets(Find).Rows("1:2").Font.Bold = True
'№ п/п
Sheets(Find).Range("A2").FormulaR1C1 = "№ п/п"
Sheets(Find).Columns("A:A").HorizontalAlignment = xlCenter
Sheets(Find).Range("A3").FormulaR1C1 = _
"=IF(OR(RC[1]="""",RC[1]=""ВСЬОГО""),"""",IF(R[-1]C=""№ п/п"",1,R[-1]C+1))"
Sheets(Find).Range("A3").AutoFill Destination:=Sheets(Find).Range("A3:A50"), Type:=xlFillDefault
Sheets(Find).Columns("A:A").ColumnWidth = 6
'прізвище
Sheets(Find).Range("B2").FormulaR1C1 = "Прізвище"
Sheets(Find).Columns("B:B").ColumnWidth = 15
Sheets(Find).Range("B3").FormulaR1C1 = _
"=IF(LOOKUP(""" + Лист1.Range("A2") + """,Списки!R3C3:R3C256, Списки!R[1]C[1]:R[1]C[254])=0,IF(AND(R[-1]C""ВСЬОГО"",R[-1]C""""),""ВСЬОГО"",""""),LOOKUP(""" + Лист1.Range("A2") + """,Списки!R3C3:R3C256,Списки!R[1]C[1]:R[1]C[254]))"
Sheets(Find).Range("B3").AutoFill Destination:=Sheets(Find).Range("B3:B50"), Type:=xlFillDefault
'дні
Sheets(Find).Range("C2").Value = "1"
Sheets(Find).Range("C2").AutoFill Destination:=Sheets(Find).Range("C2:AG2"), Type:= _
xlFillSeries
Sheets(Find).Columns("C:AG").ColumnWidth = 2
'назва місяця
Sheets(Find).Range("C1:AG1").Merge
Sheets(Find).Range("C1:AG1").HorizontalAlignment = xlCenter
Sheets(Find).Range("C1").Value = Лист1.Range("A4").Value
'група
Sheets(Find).Range("B1").Value = "Група № " + Range("A2").Value
'Колір
Sheets(Find).Range("A1:AI2,A:A").Interior.ColorIndex = 4
Sheets(Find).Range("A1:AI2,A:A").Interior.Pattern = xlSolid
'Всього
Sheets(Find).Range("AH1:AI2").HorizontalAlignment = xlCenter
Sheets(Find).Range("AH1:AI1").Merge
Sheets(Find).Range("AH1:AI1").FormulaR1C1 = "Всього"
Sheets(Find).Range("AH2").FormulaR1C1 = "Б"
Sheets(Find).Range("AI2").FormulaR1C1 = "П"
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 =
Loading...

 
 

Цікаве