а правильності заповнення таблиці, перевірка формату листа, перевірка наявності даних в аркуші результатів, виклик модуля формування та заповнення таблиці результатів)
Private Sub CommandButton1_Click ()
Dim Ans As String
Dim fl As Boolean
Dim cou As Integer
cou = 0
check = True
If Not ActiveSheet.Cells (1, 1). Value = "№" Then
Ans = MsgBox ("Лист не відформатовано для розрахунку, скористайтеся вікном введення даних ", vbCritical + vbOKCancel," Помилка ")
If Ans = vbOK Then
Hide
InsForm.Show
Sheets ("Data"). Select
Exit Sub
End If
If Ans = vbCancel Then
Exit Sub
End If
End If
For i = 2 To n + 1
For j = 2 To n + 1
If Not IsNumeric (ActiveSheet.Cells (i, j). Value) Then
MsgBox "Тривалість роботи повинна виражатися числом!", VbCritical + vbOKOnly, "Помилка"
markcell
Exit Sub
End If
kn = ActiveSheet.Cells (i, j). Value
kk = Fix (ActiveSheet.Cells (i, j). Value)
If kk
MsgBox "Дробові числа дають похибку при обчисленні! Скористайтеся перекладом одиниць часу, щоб отримати цілі числа. ", vbCritical + vbOKOnly, "Помилка"
markcell
Exit Sub
End If
If Not ActiveSheet.Cells (i, j). Value = "" Then
If Not ActiveSheet.Cells (j, i). Value = "" Then
MsgBox "Є етапи, які замикаються самі на себе! Це призведе до зациклення програми! ", vbCritical + vbOKOnly," Помилка "
markcell
Exit Sub
End If
End If
Next j
If Not ActiveSheet.Cells (i, i). Value = "" Then
j = i
MsgBox "Точка відліку не повинна имееть тривалості", vbCritical + vbOKOnly, "Помилка"
markcell
Exit Sub
End If
Next i
For i = 2 To n + 1
fl = False
For j = 2 To n + 1
If Not ActiveSheet.Cells (j, i). Value = "" Then
fl = True
End If
Next j
If fl = True Then
cou = cou + 1
End If
Next i
If cou = n Then
MsgBox "Повинен бути хоча б один початковий етап!", VbCritical + vbOKOnly, "Помилка"
Exit Sub
End If
If cou = 0 Then
MsgBox "Повинен бути принаймні один кінцевий етап!", VbCritical + vbOKOnly, "Помилка"
Exit Sub
End If
If hlp = True Then
Hide
HelpForm2.Show
End If
If check = False Then
Exit Sub
End If
Application.ScreenUpdating = False
Sheets ("Rez"). Select
If Sheets ("Rez"). Cells (1, 1). Value = "Початковий етап" Then
Ans = MsgBox ("Лист Rez вже містить результати обчислень. Зберегти обчислення в іншому аркуші? ", vbCritical + vbYesNo," Інформація ")
If Ans = vbYes Then
Sheets.Add
F...