ВУЗ:
Составители:
56
Программный код процедуры:
Private Sub выбор_Click() ‘Процедура обработки нажатия кнопки «выбор»
Dim numidx As Long ‘Переменной присваивается тип «длинное целое»
numidx = Spisok.ListCount ‘Количество элементов в списке записывается в
‘numidx
J = 0 ‘Организация счетчика количества строк табл.части накладной
For i = 0 To numidx - 1
If Spisok.Selected(i) Then ‘Если элемент списка отмечен, то выполняется блок
‘ нижеследующих операторов. В противном случае
‘увеличивается счетчик цикла и проверяется сле-
‘дующий элемент
If J > 1 Then ' Если отмеченных элементов в списке больше двух, то
'табличную часть накладной надо увеличивать для каждого
‘следующего элемента
Sheets("Накладная").Select ‘Переход на лист Накладная
ActiveSheet.Range("A" & (J + 14)).Select ‘Выделение ячеек А16, А17 и
‘ т.д. в цикле на листе Накладная
Selection.EntireRow.Insert 'добавление строки
' Выделение ячеек, содержащих формулы и форматы:
ActiveSheet.Range("B" & (J + 13) & ":L" & (J + 13)).Select
' Копирование с помощью маркера заполнения выделенных ячеек:
Selection.AutoFill Destination:=ActiveSheet.Range("B" & (J + 13) _
& ":L" & (J + 14)), Type:=xlFillDefault
End If
' Запись реквизитов товара в очередную строку листа Накладная:
Sheets("Накладная").Range("b" & (J + 14)) = Spisok.List(i, 1) ‘Наименование
Sheets("Накладная").Range("f" & (J + 14)) = Spisok.List(i, 2) ‘Ед.изм.
Sheets("Накладная").Range("j" & (J + 14)) = Spisok.List(i, 3) ‘Цена
J = J + 1 ‘Увеличение номера строки таблицы
End If
Next I ‘Переход к проверке следующего элемента списка или конец цикла
Sheets("Товары").Select ‘Активизация листа Товары
ActiveSheet.Range("B3").Select ‘Переход в ячейку, содержащую данные
' Сортировка списка товаров по коду товара:
Selection.Sort Key1:=ActiveSheet.Range("a2"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Sheets("Накладная").Select ‘Активизация листа Накладная
End Sub
Итак, обе процедуры обработки сформированы.
Если в списке будет выбрано больше двух элементов, то табличная часть
увеличится и использовать « испорченный» бланк будет неудобно. Новую на-
кладную желательно создавать при условии, что в табличной части бланка на-
кладной всего две строки.
Программный код процедуры: Private Sub выбор_Click() ‘Процедура обработки нажатия кнопки «выбор» Dim numidx As Long ‘Переменной присваивается тип «длинное целое» numidx = Spisok.ListCount ‘Количество элементов в списке записывается в ‘numidx J=0 ‘Организация счетчика количества строк табл.части накладной For i = 0 To numidx - 1 If Spisok.Selected(i) Then ‘Если элемент списка отмечен, то выполняется блок ‘ нижеследующих операторов. В противном случае ‘увеличивается счетчик цикла и проверяется сле- ‘дующий элемент If J > 1 Then ' Если отмеченных элементов в списке больше двух, то 'табличную часть накладной надо увеличивать для каждого ‘следующего элемента Sheets("Накладная").Select ‘Переход на лист Накладная ActiveSheet.Range("A" & (J + 14)).Select ‘Выделение ячеек А16, А17 и ‘ т.д. в цикле на листе Накладная Selection.EntireRow.Insert 'добавление строки ' Выделение ячеек, содержащих формулы и форматы: ActiveSheet.Range("B" & (J + 13) & ":L" & (J + 13)).Select ' Копирование с помощью маркера заполнения выделенных ячеек: Selection.AutoFill Destination:=ActiveSheet.Range("B" & (J + 13) _ & ":L" & (J + 14)), Type:=xlFillDefault End If ' Запись реквизитов товара в очередную строку листа Накладная: Sheets("Накладная").Range("b" & (J + 14)) = Spisok.List(i, 1) ‘Наименование Sheets("Накладная").Range("f" & (J + 14)) = Spisok.List(i, 2) ‘Ед.изм. Sheets("Накладная").Range("j" & (J + 14)) = Spisok.List(i, 3) ‘Цена J=J+1 ‘Увеличение номера строки таблицы End If Next I ‘Переход к проверке следующего элемента списка или конец цикла Sheets("Товары").Select ‘Активизация листа Товары ActiveSheet.Range("B3").Select ‘Переход в ячейку, содержащую данные ' Сортировка списка товаров по коду товара: Selection.Sort Key1:=ActiveSheet.Range("a2"), Order1:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom Sheets("Накладная").Select ‘Активизация листа Накладная End Sub Итак, обе процедуры обработки сформированы. Если в списке будет выбрано больше двух элементов, то табличная часть увеличится и использовать « испорченный» бланк будет неудобно. Новую на- кладную желательно создавать при условии, что в табличной части бланка на- кладной всего две строки. 56
Страницы
- « первая
- ‹ предыдущая
- …
- 54
- 55
- 56
- 57
- 58
- …
- следующая ›
- последняя »