Лист Ведомость
При нажатии на кнопку ведомость, расположенную на пользовательской форме на листе «МЕНЮ», появляется форма ведомость Рисунок 19. Выбор специальности для создания ведомости.
На форме расположены два элемента: ComboBox1 и CommandButton1. Элемент ComboBox1 позволяет выбрать из списка название специальности рабочего, а при нажатии на кнопку CommandButton1 создается ведомость на отдельном листе. Рисунок 20. Ведомость. Программный код: Private Sub CommandButton1_Click() Application.ScreenUpdating = False Dim h As Byte If ComboBox1 = "" Then h = MsgBox("Для вывода ведомости необходимо выделить из списка специальность", vbYes + vbQuestion, "Ведомость") End If Dim igr(2000, 7) As String cur_sel = Trim(ComboBox1.Text)
i = 1 j = 10 Sheets("Просто").Activate Do While Not IsEmpty(Cells(j, 3).Value) If cur_sel = Trim(Cells(j, 3).Value) Then igr(i, 1) = Cells(j, 1).Value igr(i, 2) = Cells(j, 2).Value igr(i, 3) = Cells(j, 4).Value igr(i, 4) = Cells(j, 5).Value igr(i, 5) = Cells(j, 6).Value igr(i, 6) = Cells(j, 7).Value i = i + 1 End If j = j + 1 Loop
Sheets("Выручка").Activate Cells(1, 4).Value = cur_sel Range("A3:I2000").Value = " " For j = 1 To i Cells(j + 2, 1).Value = igr(j, 1) Cells(j + 2, 2).Value = igr(j, 2) Cells(j + 2, 3).Value = igr(j, 3) Cells(j + 2, 4).Value = igr(j, 4) Cells(j + 2, 5).Value = igr(j, 5) Cells(j + 2, 6).Value = igr(j, 6) Next j Sheets("Выручка").Range("g3").Activate ActiveCell.FormulaR1C1 = "=SUM(RC[-1],R[1]C[-1]:R[196]C[-1])" 12 ComboBox1 = "" Sheets("Выручка").Range("h3").Activate Range("H3").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-4]:R[196]C[-4])" Sheets("Выручка").Range("i3").Activate Range("I3").Select ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-3]:R[1967]C[-3])" UserForm10.Hide End Sub
Private Sub UserForm_Activate() Dim pr As Object, X As Object UserForm10.ComboBox1.Clear ActiveWorkbook.Sheets("Просто").Select Set pr = ActiveSheet.Range("c10") Do While Not IsEmpty(pr) Set X = pr.Offset(1, 0) ComboBox1.AddItem pr Set pr = X Loop
End Sub
|