Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по рис.doc
Скачиваний:
0
Добавлен:
07.12.2018
Размер:
427.52 Кб
Скачать

Автозаполнение

ListBox заполняется автоматически с листа «Регистрация поставок» при помощи кода:

Private Sub UserForm_Initialize()

Worksheets("Регистрация поставок").Activate

Dim i As Integer

Dim j As Integer

'Заполнение ListBox

ListBox1.Clear

i = 1

Do

i = i + 1

ListBox1.AddItem Cells(i, 1)

For j = 1 To 4

ListBox1.List(i - 2, j - 1) = Cells(i, j)

Next j

Loop While Cells(i + 1, 1) <> ""

Private Sub ListBox1_Click()

Worksheets("Регистрация поставок").Activate

ComboBox1.Text = Cells(ListBox1.ListIndex + 2, 1)

TextBox2.Text = Cells(ListBox1.ListIndex + 2, 2)

TextBox1.Text = Cells(ListBox1.ListIndex + 2, 3)

TextBox3.Text = Cells(ListBox1.ListIndex + 2, 4)

End Sub

ComboBox заполняется с листа «Регистрация поставок» при помощи следующего кода:

i = 1

Do Until Worksheets("Регистрация поставок").Cells(i, 1) = Empty

ComboBox1.AddItem

ComboBox1.List(i - 1, 0) = Worksheets("Регистрация поставок").Cells(i + 1, 1)

ComboBox1.List(i - 1, 1) = Worksheets("Регистрация поставок").Cells(i + 1, 2)

Loop

Добавление

Private Sub CommandButton2_Click()

Worksheets("Регистрация поставок").Activate

Dim i As Integer

Dim j As Integer

i = 1

Do

i = i + 1

Loop Until Cells(i, 2) = Empty

Cells(i, 1) = TextBox1.Text

Cells(i, 2) = TextBox2.Text

Cells(i, 3) = TextBox3.Text

Cells(i, 4) = ComboBox1.Text

ListBox1.Clear

i = 1

Do

i = i + 1

ListBox1.AddItem Cells(i, 1)

For j = 1 To 4

ListBox1.List(i - 2, j - 1) = Cells(i, j)

Next j

Loop While Cells(i + 1, 1) <> ""

End Sub

Изменение

Private Sub CommandButton3_Click()

Worksheets("Регистрация поставок").Activate

Dim i As Integer

Dim j As Integer

Cells(ListBox1.ListIndex + 2, 1) = ComboBox1.Text

Cells(ListBox1.ListIndex + 2, 2) = TextBox2.Text

Cells(ListBox1.ListIndex + 2, 4) = TextBox3.Text

Cells(ListBox1.ListIndex + 2, 3) = TextBox1.Text

ListBox1.Clear

i = 1

Do

i = i + 1

ListBox1.AddItem Worksheets("Регистрация поставок").Cells(i, 1)

For j = 1 To 4

ListBox1.List(i - 2, j - 1) = Cells(i, j)

Next j

Loop While Cells(i + 1, 1) <> ""

End Sub

Удаление

Private Sub CommandButton5_Click()

Worksheets("Регистрация поставок").Activate

Dim i As Integer

Dim j As Integer

i = ListBox1.ListIndex

'Каскадное удаление

j = 0

Call MsgBox("Будет выполнено удаление записей!")

Do

j = j + 1

If Worksheets("Регистрация поставок").Cells(i + 1, 3) = Worksheets("Прейскурант цен").Cells(j, 1) Then

Worksheets("Прейскурант цен").Rows(j).Delete

j = j - 1

End If

Loop While Worksheets("Регистрация поставок").Cells(j + 1, 1) <> ""

ActiveSheet.Rows(i + 1).Delete

ListBox1.Clear

i = 1

Do

i = i + 1

ListBox1.AddItem Cells(i, 1)

For j = 1 To 4

ListBox1.List(i - 2, j - 1) = Cells(i, j)

Next j

Loop While Cells(i + 1, 1) <> ""

TextBox1.Text = ""

TextBox2.Text = ""

ComboBox1.Text = ""

TextBox3.Text = ""

End Sub

Т.к. в таблице «Регистрация поставок» содержится исходная информация для таблицы «Прейскурант цен» и из неё заполняется элемент ComboBox в форме «Прейскурант цен», поэтому в коде используется каскадное удаление, т.е. автоматическое удаление информации не только из таблицы «Регистрация поставок», но и из таблицы «Прейскурант цен».