В общем надо сделать что-то в виде макроса. Вывести сообщение: "Введите номер партии" - Вводят например цифру 1. Еще 1 сообщение: "введите количество кип в партии" - Вводят например цифру 10.
И надо, чтоб выходило на печать 10 бумажек, в которых будет порставлено на каждой номер партии (в моем случае цифра 1 ) и по порядку кол-во кип (в моем случае 1-10) Т.е. 1) Номер партии 1 кипа 1 2) Номер партии 1 кипа 2 3) Номер партии 1 кипа 3
Заранее спасибо
В общем надо сделать что-то в виде макроса. Вывести сообщение: "Введите номер партии" - Вводят например цифру 1. Еще 1 сообщение: "введите количество кип в партии" - Вводят например цифру 10.
И надо, чтоб выходило на печать 10 бумажек, в которых будет порставлено на каждой номер партии (в моем случае цифра 1 ) и по порядку кол-во кип (в моем случае 1-10) Т.е. 1) Номер партии 1 кипа 1 2) Номер партии 1 кипа 2 3) Номер партии 1 кипа 3
Dim myPartyNumber As String 'Делаем у переменной "myKipCount" тип данных "Variant", т.к. в ней 'в коде могут быть числа и текст. Dim myKipCount As Variant Dim i As Long
'Пользователь выбирает номер партии. 'Данные помещаются в переменную "myPartyNumber". myPartyNumber = InputBox("Введите номер партии:")
'Проверка, что пользователь что-то ввёл и не нажал "Отмена". If myPartyNumber = "" Then 'Выход из процедуры. Exit Sub End If
'Пользователь выбирает количество кип. myKipCount = InputBox("Введите количество кип:")
'Проверка, что пользователь ввёл число, иначе в коде 'будет ошибка при выполнении математических действий. If IsNumeric(myKipCount) = False Then MsgBox "Введено не число.", vbExclamation Exit Sub End If
'Делаем в переменной "myKipCount" числовой тип данных, 'хотя в этом нет необходимости, но чтобы было. myKipCount = CLng(myKipCount)
'Помещаем в активный лист, в ячейку "B1" номер партии. 'Макрос будет распечатывать активный лист. ActiveSheet.Range("B1").Value = myPartyNumber
'Печать активного листа.
'For ... To ... Step ... Next - это цикл. Цикл используется, 'чтобы делать одну и ту же команду несколько раз. For i = 1 To myKipCount Step 1 'В активный лист, в ячейку "B2" подставляем данные. ActiveSheet.Range("B2").Value = i ActiveSheet.PrintOut Next i
End Sub
[/vba]
Чтобы не расходовать бумагу и расходные материалы принтера, можно тестировать макрос на виртуальном принтере. Виртуальный принтер - это программа, которая переводит Excel-лист в pdf-формат или другой формат. Есть бесплатные виртуальные принтеры, например, doPDF v7. После установки виртуального принтера, виртуальный принтер появится здесь (Excel 2010): "Файл" - "Печать" - список "Принтер".
Чтобы мой макрос печатал на виртуальный принтер, есть 2 варианта: 1) сделайте (Excel 2010): "Файл" - "Печать" - в списке "Принтер" выберите виртуальный принтер - вкладка "Главная" - запустите макрос; 2) или сделайте следующее (Windows 7): "Пуск" - "Панель управления" - "Оборудование и звук" - "Устройства и принтеры" - щёлкните по виртуальному принтеру правой кнопкой мыши - "Использовать по умолчанию" - закройте и запустите программу "Excel" - запустите макрос.
Или можно в макросе указать принтер, на который надо печатать (в моём макросе нет такой команды).
[vba]
Код
Sub Procedure_1()
Dim myPartyNumber As String 'Делаем у переменной "myKipCount" тип данных "Variant", т.к. в ней 'в коде могут быть числа и текст. Dim myKipCount As Variant Dim i As Long
'Пользователь выбирает номер партии. 'Данные помещаются в переменную "myPartyNumber". myPartyNumber = InputBox("Введите номер партии:")
'Проверка, что пользователь что-то ввёл и не нажал "Отмена". If myPartyNumber = "" Then 'Выход из процедуры. Exit Sub End If
'Пользователь выбирает количество кип. myKipCount = InputBox("Введите количество кип:")
'Проверка, что пользователь ввёл число, иначе в коде 'будет ошибка при выполнении математических действий. If IsNumeric(myKipCount) = False Then MsgBox "Введено не число.", vbExclamation Exit Sub End If
'Делаем в переменной "myKipCount" числовой тип данных, 'хотя в этом нет необходимости, но чтобы было. myKipCount = CLng(myKipCount)
'Помещаем в активный лист, в ячейку "B1" номер партии. 'Макрос будет распечатывать активный лист. ActiveSheet.Range("B1").Value = myPartyNumber
'Печать активного листа.
'For ... To ... Step ... Next - это цикл. Цикл используется, 'чтобы делать одну и ту же команду несколько раз. For i = 1 To myKipCount Step 1 'В активный лист, в ячейку "B2" подставляем данные. ActiveSheet.Range("B2").Value = i ActiveSheet.PrintOut Next i
End Sub
[/vba]
Чтобы не расходовать бумагу и расходные материалы принтера, можно тестировать макрос на виртуальном принтере. Виртуальный принтер - это программа, которая переводит Excel-лист в pdf-формат или другой формат. Есть бесплатные виртуальные принтеры, например, doPDF v7. После установки виртуального принтера, виртуальный принтер появится здесь (Excel 2010): "Файл" - "Печать" - список "Принтер".
Чтобы мой макрос печатал на виртуальный принтер, есть 2 варианта: 1) сделайте (Excel 2010): "Файл" - "Печать" - в списке "Принтер" выберите виртуальный принтер - вкладка "Главная" - запустите макрос; 2) или сделайте следующее (Windows 7): "Пуск" - "Панель управления" - "Оборудование и звук" - "Устройства и принтеры" - щёлкните по виртуальному принтеру правой кнопкой мыши - "Использовать по умолчанию" - закройте и запустите программу "Excel" - запустите макрос.
Или можно в макросе указать принтер, на который надо печатать (в моём макросе нет такой команды).