
Лист «Тарифы»
На листе расположена таблица, состоящая из двух столбцов: специальность и цена рабочего времени, а также на листе есть кнопки добавления и удаления данных, кнопка меню, для перехода на лист «Титульный лист» и кнопка табель учета, для перехода на лист «Табель учета рабочего времени».
При нажатии на кнопку Добавление данных открывается форма Добавление данных.
Форма состоит из двух элементов Label1 и Label2,из двух текстовых полей TextBox1, TextBox2 и двух кнопок CommandButton1 со свойством Caption, которому присвоено значение «Добавить», и CommandButton2 со свойством Caption, которому присвоено значение «Отмена».
Программный код:
Private Sub CommandButton1_Click()
Dim текущая As Object, следующая As Object
If TextBox1 = " " Or TextBox2 = " " Then
MsgBox "Введены не все данные"
Exit Sub
End If
ActiveWorkbook.Sheets("Тарифы").Select
Set текущая = ActiveSheet.Range("A2")
Do While Not IsEmpty(текущая)
Set следующая = текущая.Offset(1, 0)
If текущая = TextBox1.Text Then
MsgBox "Такая Специальность уже существует"
TextBox1.Text = " "
TextBox2.Text = " "
Exit Sub
End If
Set текущая = следующая
Loop
текущая.Value = TextBox1.Text
текущая.Offset(0, 1).Value = TextBox2.Text
TextBox1.Text = " "
TextBox2.Text = " "
MsgBox ("На листе Тарифы появилась новая специальность")
End Sub
Private Sub CommandButton2_Click()
dabavdan.Hide
End Sub
Private Sub TextBox1_Change()
If IsNumeric(TextBox1.Text) And Len(TextBox1) <> 0 Then
MsgBox "Вводить надо текстовые данные!", vbOKOnly + vbInformation
TextBox1.Value = ""
TextBox1.SetFocus
End If
End Sub
Private Sub TextBox2_Change()
If TextBox2.Value < 0 Then
MsgBox "Числа не должны быть отрицательные!", vbOKOnly + vbInformation
TextBox2.SetFocus
End If
If Not IsNumeric(TextBox2.Text) And Len(TextBox2) <> 0 Then
MsgBox "Вводить надо числовые данные!", vbOKOnly + vbInformation
TextBox2.Value = ""
TextBox2.SetFocus
End If
End Sub
При нажатии на кнопку Удаление данных открывается форма удаление данных.
На форме расположены элементы: Label1,ComboBox1, CommandButton1 со своиством Caption,которому присвоено значение «Удаление» выбранной специальности, CommandButton2 со своиством Caption,которому присвоено значение «Закрыть».
Программный код:
Private Sub ComboBox1_Change()
ActiveWorkbook.Sheets("Тарифы").Select
Dim i As Integer
Dim j As Integer
Dim a As Integer
Dim строка As Integer
строка = Application.CountA(Sheets("Тарифы").Columns(1))
i = 1
Do While i <= строка
i = i + 1
If Cells(i, 1) = "" Then
j = i
Exit Do
End If
Loop
For a = 2 To i
If ComboBox1.Text = Cells(a, 1).Value Then
End If
Next a
End Sub
Private Sub CommandButton1_Click()
Dim pr As Object, X As Object
Dim name As String
Dim h As Byte
Dim Y As Byte
h = MsgBox("Вы действительно хотите удалить эту специальность?", vbYesNo + vbQuestion, "Удаление")
If h = vbYes Then Else GoTo e
name = ComboBox1
If ComboBox1 = "" Then
Y = MsgBox("Удаление невозможно, так как не выделен объект", vbYes + vbQuestion, "Удаление")
If Y = vbYes Then GoTo 12 Else GoTo e
End If
ActiveWorkbook.Sheets("Табель учета рабочего времени").Activate
Set pr = ActiveSheet.Range("C11")
Do While Not IsEmpty(pr)
Set X = pr.Offset(1, 0)
If pr = name Then
pr.Select
Selection.EntireRow.Delete
End If
Set pr = X
Loop
ActiveWorkbook.Sheets("Тарифы").Activate
Set pr = ActiveSheet.Range("A3")
Do While Not IsEmpty(pr)
Set X = pr.Offset(1, 0)
If pr = name Then
pr.Select
Selection.EntireRow.Delete
End If
Set pr = X
Loop
12 ComboBox1 = ""
TextBox1 = ""
udal.Hide
e: End Sub
Private Sub CommandButton2_Click()
udal.Hide
End Sub
Private Sub UserForm_Activate()
Dim pr As Object, X As Object
udal.ComboBox1.Clear
ActiveWorkbook.Sheets("Тарифы").Select
Set pr = ActiveSheet.Range("A3")
Do While Not IsEmpty(pr)
Set X = pr.Offset(1, 0)
ComboBox1.AddItem pr
Set pr = X
Loop
End Sub
Программа для кнопки Меню:
Private Sub CommandButton1_Click()
gmenu.Show
End Sub
Переход на лист «Табель учета рабочего времени» осуществляется с помощью кнопки «Табель учета»
Макрос:
Sub табель_учета()
' табель_учета Макрос
Sheets("Табель учета рабочего времени").Select
End Sub